[英]How to make current row value equal to previous row value if a column equals a value in Pandas?
我有一个如下的数据框:
df
ID val
1 0.0
2 yes
3 1.0
4 0.0
5 yes
如果列 val 等于“是”,我如何将前一个值与当前值匹配
我试过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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.