熊猫系列bfill上半年,ffill下半年

时间:2016-06-17 18:30:03

标签: python pandas

假设我有:

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 个答案:

答案 0 :(得分: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