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 呀…

