我有一个这样的数据框
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()
但没有用。任何建议都会有帮助
答案 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