首页 文章

pandas:group by ffill不适用填写正确的顺序

提问于
浏览
0

我通过ffill面对小组的问题 . 它似乎没有以正确的顺序应用前向填充这是我的起始数据

group       date  stage_2
0      A 2014-01-01      NaN
1      A 2014-01-03      NaN
2      A 2014-01-04      NaN
3      A 2014-01-05      1.0
4      B 2014-01-02      NaN
5      B 2014-01-06      NaN
6      B 2014-01-10      NaN
7      C 2014-01-03      1.0
8      C 2014-01-05      3.0
9      C 2014-01-08      NaN
10     C 2014-01-09      NaN
11     C 2014-01-10      NaN
12     C 2014-01-11      NaN
13     D 2014-01-01      NaN
14     D 2014-01-03      NaN
15     D 2014-01-04      NaN
16     E 2014-01-04      1.0
17     E 2014-01-06      3.0
18     E 2014-01-07      4.0
19     E 2014-01-08      NaN
20     E 2014-01-09      NaN
21     E 2014-01-10      NaN
22     F 2014-01-08      NaN

应用ffill方法后,这就是我得到的

df ['stage_2'] = df.groupby('group')['stage_2'] . ffill()

我期待索引9到12和21的 Value 不同

group       date  stage_2
0      A 2014-01-01      NaN
1      A 2014-01-03      NaN
2      A 2014-01-04      NaN
3      A 2014-01-05      1.0
4      B 2014-01-02      NaN
5      B 2014-01-06      NaN
6      B 2014-01-10      NaN
7      C 2014-01-03      1.0
8      C 2014-01-05      3.0
9      C 2014-01-08      1.0
10     C 2014-01-09      NaN
11     C 2014-01-10      NaN
12     C 2014-01-11      NaN
13     D 2014-01-01      NaN
14     D 2014-01-03      NaN
15     D 2014-01-04      NaN
16     E 2014-01-04      1.0
17     E 2014-01-06      3.0
18     E 2014-01-07      4.0
19     E 2014-01-08      4.0
20     E 2014-01-09      4.0
21     E 2014-01-10      NaN
22     F 2014-01-08      NaN

1 回答

  • 0

    我可以重现这一点的唯一方法是输入非ASCII字符,例如西里尔文 СЕ 分别在索引9-12和21的 group 列中 .

    EDIT

    好吧,很可能你正在使用pandas v0.23.0 ,它有bug(在未来的版本中修复,至少在 v0.23.4 中),这使得 .ffill() 给出你发布的确切输出 . 所以请upgrade your pandas .

相关问题