如何在 pandas fillna() 方法中为不同的列应用不同的方法参数

Posted

技术标签:

【中文标题】如何在 pandas fillna() 方法中为不同的列应用不同的方法参数【英文标题】:How to apply different method parameters for different columns in pandas fillna() method 【发布时间】:2019-09-03 19:00:27 【问题描述】:

我有一个这样的数据框。

Name    Roll    GPA
A       10      5.0
B       NaN     4.5
C       12      NaN

我正在使用:

df.fillna(method='ffill', inplace=True)

但它使用ffill 方法填充所有列。

但我想同时使用 ffillbfill 方法填充 NaN 值。例如,我想将method='ffill' 应用于Roll 列,将method='bfill' 应用于GPA 列。我怎样才能做到这一点?

【问题讨论】:

df2 = df.assign(Roll=df.Roll.ffill(), GPA=df.GPA.bfill()) 感谢@coldspeed。有用。请将此添加为答案,以便我标记为最佳。 【参考方案1】:

两者都可以。

df2 = df.assign(Roll=df.Roll.ffill(), GPA=df.GPA.bfill())

【讨论】:

以上是关于如何在 pandas fillna() 方法中为不同的列应用不同的方法参数的主要内容,如果未能解决你的问题,请参考以下文章

如何将另一整列作为参数传递给 pandas fillna()

pandas 处理缺失值[dropna、drop、fillna]

Fillna 一次使用多种方法 - pandas

Pandas:具有多索引的 fillna() 方法 - NaN 填充了错误的列

python - Pandas - FillNa 与另一个具有相似列的非空行

使用 fillna 在 Pandas 中使用列表填充空值