我正面临小组填写的问题。它似乎没有以正确的顺序应用向前填充 这是我的开始数据
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
应用填充方法后,这就是我得到的
df ['stage_2'] = df.groupby('group')['stage_2']。ffill()
我期望索引9到12和21的值不同
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
答案 0 :(得分:0)
我可以重现此错误的唯一方法是输入非ASCII字符,例如将西里尔字母С
和Е
分别移到索引{9-12和21的group
列。
编辑
好的,很可能您使用的熊猫v0.23.0
具有bug(在以后的版本中,至少在v0.23.4
中已得到修复),从而使.ffill()
给出了准确的信息您发布的输出。因此,请upgrade your pandas。