簡體   English   中英

如果列等於 Pandas 中的值,如何使當前行值等於前一行值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM