2017-06-27 11 views
4

複数の連続するNaNを持つパンダシリーズがあるとします。私はfillnaに欠損値(backfillfill forward)を記入するためのいくつかの方法があることを知っていますが、それらをNaN以外の値に最も近づけたいと思います。ここで私が持っているものの例です:パンダ欠損値:最も近い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])

は、私はそれを行うことができ、誰を知っていますか?

ありがとうございます!

+1

私はあなたが2秒を得た方法に関しては困惑している - あなたは最も近い非NAN値をしたい場合、それらは1秒のではないでしょうか? – mauve

+0

シリーズには連続したNaNを含む部分が1つしかないか、複数の部分が存在する可能性がありますか(たとえば、[0,1、np.nan、np.nan、2、np.nan、np.nan、3])? –

+0

@a_guest複数の部分を含めることができます –

答えて

8

あなたはmethod='nearest'Series.interpolateを使用することができます。

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 
関連する問題