我有一个数据帧如下:
df
ID val
1 0.0
2 yes
3 1.0
4 0.0
5 yes
如果列val等于"0",我如何将前一个值与当前值匹配;是";
我试过df['val'] = df['val'].replace('yes', np.nan).bfill().astype(str)
,但无法按要求工作。
期望输出
ID val
1 yes
2 yes
3 1.0
4 yes
5 yes
我们可以把np.where和bfill一起用吗?怎么做?
怎么样:
df.loc[df['val'].shift(-1).eq('yes'), 'val'] = 'yes'
输出:
ID val
0 1 yes
1 2 yes
2 3 1.0
3 4 yes
4 5 yes