Python中pandas的None值如何向前填充?

使用过这个 df.fillna(method="pad") 但是没有奏效,是因为不是 nan 吗?


Python中pandas的None值如何向前填充?
4 回复

df.fillna(“something”, inplace=True)


DataFrame.ffill()Series.ffill() 就行,参数 axis 控制方向,默认就是向前(向下)填充。

import pandas as pd
import numpy as np

# 示例数据
df = pd.DataFrame({
    'A': [1, None, None, 4, None],
    'B': [None, 2, None, None, 5]
})
print("原始数据:")
print(df)

# 向前填充(向下填充)
df_filled = df.ffill()
print("\n向前填充后:")
print(df_filled)

输出:

原始数据:
     A    B
0  1.0  NaN
1  NaN  2.0
2  NaN  NaN
3  4.0  NaN
4  NaN  5.0

向前填充后:
     A    B
0  1.0  NaN
1  1.0  2.0
2  1.0  2.0
3  4.0  2.0
4  4.0  5.0

如果只想填充特定列或限制连续填充数量,可以用 df['列名'].ffill(limit=最大填充数)

总结:用 ffill() 方法。

尝试过了 但是失败了

加了 inplace=True 才会替换当前变量,没加的会返回一个新的对象,

所以你的问题是这个地方不是 NaN 么…, 不过我遇到的空值都是 NaN 呀…

回到顶部