为了账号安全,请及时绑定邮箱和手机立即绑定

如果列等于 Pandas 中的值,如何使当前行值等于前一行值?

如果列等于 Pandas 中的值,如何使当前行值等于前一行值?

MM们 2023-07-05 10:27:43
我有一个数据框如下:dfID  val1   0.02   yes3   1.04   0.05   yes如果列 val 等于“yes”,如何将先前值与当前值匹配我尝试过df['val'] = df['val'].replace('yes', np.nan).bfill().astype(str),但无法按预期工作。期望的输出ID  val1   yes2   yes3   1.04   yes5   yes我们可以将 np.where 与 bfill 一起使用吗?该怎么做呢?
查看完整描述

1 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

怎么样:


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


查看完整回答
反对 回复 2023-07-05
  • 1 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信