熊猫缺失值:填充最接近的非NAN值



假设我有一个连续NAN的熊猫系列。我知道fillna有几种填充缺失值的方法(backfillfill forward(,但我想用最接近的非NAN值填充它们。这是我拥有的示例:

s = pd.Series([0, 1, np.nan, np.nan, np.nan, np.nan, 3])

和我想要的例子:

s = pd.Series([0, 1, 1, 1, 3, 3, 3])

有人知道我可以做到吗?

谢谢!

您可以将Series.interpolatemethod='nearest'使用:

In [11]: s = pd.Series([0, 1, np.nan, np.nan, np.nan, np.nan, 3])
In [12]: s.interpolate(method='nearest')
Out[12]: 
0    0.0
1    1.0
2    1.0
3    1.0
4    3.0
5    3.0
6    3.0
dtype: float64
In [13]: s = pd.Series([0, 1, np.nan, np.nan, 2, np.nan, np.nan, 3])
In [14]: s.interpolate(method='nearest')
Out[14]: 
0    0.0
1    1.0
2    1.0
3    2.0
4    2.0
5    2.0
6    3.0
7    3.0
dtype: float64

最新更新