使用条件的熊猫缺失值(按其他列分组)

时间:2021-07-23 01:14:28

标签: python pandas

我有一个这样的数据框

df

Col A    Col B    Col C 

25       1         2          
NaN      3         1
27       2         3 
29       3         1

我想根据 Col C 和 Col B 填充 col A 中的 Nan 值。

我的输出df应该是这样的

25       1         2          
29       3         1
27       2         3 
29       3         1

我已经试过这个代码 df.groupby(['Col B','Col C']).ffill()

但没有用。任何建议都会有帮助

2 个答案:

答案 0 :(得分:2)

给你:

df['Col A'] = df["Col A"].fillna(df.groupby(['Col B','Col C'])["Col A"].transform(lambda x: x.mean()))
print(df)

打印:

   Col A  Col B  Col C
0   25.0      1      2
1   29.0      3      1
2   27.0      2      3
3   29.0      3      1

答案 1 :(得分:0)

你可以试试

df.fillna(df.groupby(['ColB','ColC']).transform('first'),inplace=True)
df
Out[386]: 
   ColA  ColB  ColC
0  25.0     1     2
1  29.0     3     1
2  27.0     2     3
3  29.0     3     1