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

我有一个数据框如下:


df


ID  val

1   0.0

2   yes

3   1.0

4   0.0

5   yes

如果列 val 等于“yes”,如何将先前值与当前值匹配


我尝试过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 一起使用吗?该怎么做呢?


MM们
浏览 150回答 1
1回答

慕斯王

怎么样:df.loc[df['val'].shift(-1).eq('yes'), 'val'] = 'yes'输出:   ID  val0   1  yes1   2  yes2   3  1.03   4  yes4   5  yes
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python