如果值 Positive 在我的 pandas 數據框中連續出現超過 2 次(變為 Negative),我需要更改數據集的值,并且如果它是不同的 id,我也需要按 id 設置 id。如果Negative 在行循環中中斷超過2 次,或者Negative 在一行中出現超過2 次,則不執行任何操作。例子: id status0 3 Positive1 3 Positive2 3 Positive3 2 Positive4 1 Positive5 2 Positive 6 2 Positive7 2 Positive得到的 df 應該是: id status0 3 Positive1 3 Positive2 3 Negative3 2 Positive4 1 Positive5 2 Positive 6 2 Negative7 2 Negative
1 回答

慕田峪7331174
TA貢獻1828條經驗 獲得超13個贊
我們可以使用來計算, thengroupby().cumcount()的出現次數:idnp.where
mask = (df['status'].eq('Positive') # check for positive
.groupby(df['id']) # group by id
.transform(lambda x:x.rolling(3).sum()) # count the consecutive positive in the last 3
.eq(3)
)
df.loc[mask, 'status'] = 'Negative'
輸出:
id status
0 3 Positive
1 3 Positive
2 3 Negative
3 2 Positive
4 1 Positive
5 2 Positive
6 2 Negative
7 2 Negative
添加回答
舉報
0/150
提交
取消