我有DataFrame
个对象df
,其列如下:
[In]: df
[Out]:
id sum
0 1 NaN
1 1 NaN
2 1 2
3 1 NaN
4 1 4
5 1 NaN
6 2 NaN
7 2 NaN
8 2 3
9 2 NaN
10 2 8
10 2 NaN
... ... ...
[1810601 rows x 2 columns]
我的列中有很多NaN
值,我想通过以下方式填充它们:
NaN
在开头(每index
的第一个id
等于0
),则应该是0
NaN
我想从同一个id
的先前索引中获取价值输出应如下所示:
[In]: df
[Out]:
id sum
0 1 0
1 1 0
2 1 2
3 1 2
4 1 4
5 1 4
6 2 0
7 2 0
8 2 3
9 2 3
10 2 8
10 2 8
... ... ...
[1810601 rows x 2 columns]
我尝试使用iterrows()
循环“逐步”执行此操作,但这是非常无效的方法。我相信使用熊猫方法可以更快地完成
答案 0 :(得分:2)
尝试按照groupby的建议填充
df['sum'] = df.groupby('id')['sum'].ffill().fillna(0)