gpt4 book ai didi

python - 用第二个 DF 填充 DF

转载 作者:行者123 更新时间:2023-12-01 02:36:15 26 4
gpt4 key购买 nike

我看到了几个与此相关的问题,但我发现这些技巧都不起作用。

我正在尝试根据第二个数据帧的值填充数据帧的所有 NaN 值。第一个 df 很大,第二个 df 将充当某种键。

     DF1

Part System_Type Replacement_Cost Service_Life(Years) Location

nut A/C .09 1 TX
Bolt Generator NAN NAN MT
screw roof .08 NAN UT
screw A/C NAN 3 OH
screw roof .08 NAN TX

DF2
Part System_Type Replacement_Cost Service_Life(Years)

Bolt Generator .06 2
screw roof .08 3
screw A/C .08 3

像这样的输出

    Part    System_Type   Replacement_Cost   Service_Life(Years)    Location

nut A/C .09 1 TX
Bolt Generator .06 2 MT
screw roof .08 3 UT
screw A/C .08 3 OH
screw roof .08 3 TX

我尝试使用 df1.combine_first(df2),但我需要它用“Part”和“System_Type”填充所有 NAN,两者都充当正确匹配数据的键。看起来它并没有填充所有缺失的值,而只是填充了其中的一些值。我的数据集有数百万行,因此我需要它在每次出现特定值集时填充 NAN(即每次看到螺丝和屋顶时,它都应将更换成本填充为“.08”,将使用生命周期填充为“3”)

最佳答案

假设那些NANnp.nan

df1.fillna(df1[['Part', 'System_Type']].merge(df2, 'left'))

Part System_Type Replacement_Cost Service_Life(Years) Location
0 nut A/C 0.09 1.0 TX
1 Bolt Generator 0.06 2.0 MT
2 screw roof 0.08 3.0 UT
3 screw A/C 0.08 3.0 OH
4 screw roof 0.08 3.0 TX

否则,您可以将 NAN 替换为 np.nan

df1.replace('NAN', np.nan).fillna(df1[['Part', 'System_Type']].merge(df2, 'left'))

Part System_Type Replacement_Cost Service_Life(Years) Location
0 nut A/C .09 1 TX
1 Bolt Generator 0.06 2 MT
2 screw roof .08 3 UT
3 screw A/C 0.08 3 OH
4 screw roof .08 3 TX

关于python - 用第二个 DF 填充 DF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46186488/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com