首页 > 解决方案 > Pandas 索引插值在最后一个数据点之后填充缺失值

问题描述

在列的末尾有一个缺失值的数据框,fe:

df = pd.DataFrame({'a':[np.nan,1,2,np.nan,np.nan,5,np.nan,np.nan]}, index=[0,1,2,3,4,5,6,7])

     a
0  NaN
1  1.0
2  2.0
3  NaN
4  NaN
5  5.0
6  NaN
7  NaN

使用“索引”插值方法:

df.interpolate(method='index')

返回具有前向填充的最后一个缺失值的数据框:

     a
0  NaN
1  1.0
2  2.0
3  3.0
4  4.0
5  5.0
6  5.0
7  5.0

有没有办法关闭这种行为并留下最后的缺失值:

     a
0  NaN
1  1.0
2  2.0
3  3.0
4  4.0
5  5.0
6  NaN
7  NaN

标签: pythonpandasdataframeinterpolation

解决方案


我认为需要新参数limit_direction0.23.0+检查:

df = df.interpolate(method='index', limit=1, limit_direction='backward')
print (df)
     a
1  1.0
2  2.0
3  3.0
4  4.0
5  5.0
6  NaN
7  NaN

NaN编辑:如果只想在添加参数中替换s limit_area

df = df.interpolate(method='index',limit_area='inside')
print (df)
     a
0  NaN
1  1.0
2  2.0
3  3.0
4  4.0
5  5.0
6  NaN
7  NaN

推荐阅读