Pandas 防止插值进行外推
我试图插值一个包含NaN的数据。我想填充1-3个连续的NaN,但我不知道如何使用pd.interpolate()来填充 原始数据:Pandas 防止插值进行外推,pandas,interpolation,Pandas,Interpolation,我试图插值一个包含NaN的数据。我想填充1-3个连续的NaN,但我不知道如何使用pd.interpolate()来填充 原始数据: 0 NaN 1 NaN 2 NaN 3 4.0 4 5.0 5 NaN 6 NaN 7 NaN 8 NaN 9 10.0 10 NaN 11 NaN 12 NaN 13 14.0 尝试插值: 0 NaN 1 NaN 2
0 NaN
1 NaN
2 NaN
3 4.0
4 5.0
5 NaN
6 NaN
7 NaN
8 NaN
9 10.0
10 NaN
11 NaN
12 NaN
13 14.0
尝试插值:
0 NaN
1 NaN
2 NaN
3 4.0
4 5.0
5 6.0
6 7.0
7 8.0
8 9.0
9 10.0
10 11.0
11 12.0
12 13.0
13 14.0
预期结果:
0 NaN
1 NaN
2 NaN
3 4.0
4 5.0
5 NaN
6 NaN
7 NaN
8 NaN
9 10.0
10 11.0
11 12.0
12 13.0
13 14.0
任何帮助都将不胜感激:)创建一个布尔掩码,以查看哪些
NA组
具有少于4个连续的NA
mask = (data_chunk.notnull() != data_chunk.shift().notnull()).cumsum().reset_index().groupby(0).transform('count') < 4
谢谢你,这正是我害怕的。我希望我只是不明白如何正确使用pd.interpolate。奇怪的是,这不是函数的一部分。我同意,如果能够指定一个使其工作的附加限制,那就太好了
mask = (data_chunk.notnull() != data_chunk.shift().notnull()).cumsum().reset_index().groupby(0).transform('count') < 4
pd.concat([interpolated[mask.values[:,0] ==True], data_chunk[mask.values[:,0] == False]]).sort_index()