我有这个数据框:
a b c d
1 NaN 1 2
NaN 1 3 4
3 NaN NaN 5
我需要根据 column d
的值替换每一行中的空值。
输出应该是:
a b c d
1 2 1 2
4 1 3 4
3 5 5 5
我尝试了以下方法,但没有一个起作用:
df.fillna(df.d, inplace= True)
df.iloc[:].fillna(df.d, inplace= True)
df.replace(np.NaN, df.d, inplace=True)
我的列太多,所以我不能逐列填充空值。 如何使用 d 列中的值一次填充所有列中的空值?
最佳答案
从 df
创建一个克隆 df1
,其值全部从 df.d
广播。接下来,用它来填充 df
df1 = df[['d']].reindex(columns=df.columns).bfill(1)
df.fillna(df1)
Out[153]:
a b c d
0 1.0 2.0 1.0 2
1 4.0 1.0 3.0 4
2 3.0 5.0 5.0 5
关于python - 根据一列中的值替换整个数据框中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57667428/