假设我有一个像这样的数据框:
col1 col2 col3
0 data1 0 NaN
1 data1 0 NaN
2 data1 1 Done
3 data2 0 NaN
4 data2 1 To be done
5 data3 0 NaN
6 data3 1 Fail
如何替换 col3 中的 nan 值,例如:col1 中的 data1 在 col3 中具有“完成”行, 我如何将此值传递给 col3 中包含 col1 中的 data1 的所有 NaN 行?
理想的 df 看起来像这样:
col1 col2 col3
0 data1 0 Done
1 data1 0 Done
2 data1 1 Done
3 data2 0 To be done
4 data2 1 To be done
5 data3 0 Fail
6 data3 1 Fail
最佳答案
使用groupby
+ bfill
:
df['col3'] = df.groupby('col1')['col3'].bfill()
print(df)
# Output:
col1 col2 col3
0 data1 0 Done
1 data1 0 Done
2 data1 1 Done
3 data2 0 To be done
4 data2 1 To be done
5 data3 0 Fail
6 data3 1 Fail
关于python - 如果另一列中的值匹配,如何填充列中的 nan 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70318257/