python - 根据一列中的值替换整个数据框中的空值

标签 python pandas

我有这个数据框:

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/

相关文章:

Python Pysnmp Loop 总是返回 Must be string type 错误,即使变量是字符串

python - 使用 eyeD3 从 Python 中的 mp3 文件中检索歌词

python - 如何通过列的特定值将数据框拆分成多个部分?

python - Pandas 数据框可对多列和要列出的值进行字典

python - Pandas DataFrame - 选择与多个条件之一匹配的行

python - 用于分组的窗口函数

python - 如何在 macOS 上创建和存储 matplotlib 样式文件?

Python处理多个文件

python - 在python上遍历图形时获取权重总和

python - Pandas .at 与 .loc