在熊猫中满足条件后按组向前填充缺少的值

Jua*_*n C 5 python group-by nan pandas

我对此有点麻烦。我的数据框如下所示:

id    amount    dummy
1      130        0
1      120        0
1      110        1
1      nan       nan 
1      nan       nan   
2      nan        0
2      50         0
2      20         1
2      nan       nan 
2      nan       nan  
Run Code Online (Sandbox Code Playgroud)

所以,我需要做的是,在虚拟对象获取value = 1之后,我需要为每个变量的数量填充零id,如下所示:

id    amount    dummy
1      130        0
1      120        0
1      110        1
1       0        nan 
1       0        nan   
2      nan        0
2      50         0
2      20         1
2       0        nan 
2       0        nan 
Run Code Online (Sandbox Code Playgroud)

我猜我需要的某种组合groupby('id')fillna(method='ffill')也许一个.loc或一个shift(),但我想一切都已经取得了一些问题,或者是很慢的。有什么建议么?

WeN*_*Ben 6

我将使用的方式

s = df.groupby('id')['dummy'].ffill().eq(1)
df.loc[s&df.dummy.isna(),'amount']=0
Run Code Online (Sandbox Code Playgroud)