如何用pandas按序列规律填充NaN值 替代ffill前向填充方法
Pandas等差序列空缺值按规律填充方案
你之前使用的fillna(method='ffill')为向前填充逻辑,仅会复用空值前最近的有效值,不会根据序列的数值变化规律计算填充值,无法满足你的需求,可使用线性插值方法实现目标效果:
实现代码
- 导入依赖并构造示例数据集
import pandas as pd import numpy as np # 构造符合你描述的测试数据集 df = pd.DataFrame({'F_N': [10, 20, 30, np.nan, 50, np.nan, 70]})
- 执行规律填充
使用interpolate()默认的线性插值逻辑,会自动计算两个有效值之间的空缺值,刚好匹配你需要的40、60填充结果:
df['F_N'] = df['F_N'].interpolate()
- 填充结果验证
输出处理后的F_N列:[10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0],完全符合预期。
扩展说明
如果你的序列不是严格等差序列,可调整interpolate()的method参数适配不同场景,比如时间序列可指定method='time',临近值填充可指定method='nearest'。
内容的提问来源于stack exchange,提问作者akmal_quamri
相关产品推荐
相关产品推荐

