2016-06-17 6 views
1

は私が持っていたとしますパンダシリーズbfill前半、ffill後半

import pandas as pd 
import numpy as np 

np.random.seed([3,1415]) 
s = pd.Series(np.random.choice((0, 1, 2, 3, 4, np.nan), 
           (50,), p=(.1, .1, .1, .1, .1, .5))) 

私はシリーズの最初の半分を欠損値を埋めて、前方シリーズの第二の半分を埋めるバックアップしたいです。あなたが望むなら、中出ししてください。

期待私は独立して、ここで二つの半分で動作し、出力

0  4.0 
1  4.0 
2  4.0 
3  4.0 
4  4.0 
5  0.0 
6  1.0 
7  1.0 
8  1.0 
9  1.0 
10 1.0 
11 1.0 
12 1.0 
13 1.0 
14 1.0 
15 1.0 
16 1.0 
17 1.0 
18 4.0 
19 1.0 
20 2.0 
21 0.0 
22 0.0 
23 NaN 
24 NaN 
25 NaN 
26 NaN 
27 3.0 
28 2.0 
29 4.0 
30 4.0 
31 4.0 
32 4.0 
33 0.0 
34 0.0 
35 0.0 
36 0.0 
37 2.0 
38 2.0 
39 2.0 
40 2.0 
41 1.0 
42 1.0 
43 0.0 
44 2.0 
45 2.0 
46 2.0 
47 2.0 
48 2.0 
49 2.0 
dtype: float64 

答えて

1

In [71]: s.ix[:len(s)/2].bfill().append(s.ix[1+len(s)/2:].ffill()) 
Out[71]: 
0  4 
1  4 
2  4 
3  4 
4  4 
5  0 
6  1 
7  1 
8  1 
9  1 
10  1 
11  1 
12  1 
13  1 
14  1 
15  1 
16  1 
17  1 
18  4 
19  1 
20  2 
21  0 
22  0 
23 NaN 
24 NaN 
25 NaN 
26 NaN 
27  3 
28  2 
29  4 
30  4 
31  4 
32  4 
33  0 
34  0 
35  0 
36  0 
37  2 
38  2 
39  2 
40  2 
41  1 
42  1 
43  0 
44  2 
45  2 
46  2 
47  2 
48  2 
49  2 
dtype: float64 
関連する問題