我有一個如下所示的 DataFrame,我想在其中找到元素從 0 到 1 的索引。
下面的代碼獲得了我想要的所有實體,但它也包括符號從 -1 變為 0 的情況,這是我不想要的。
import numpy as np
df=pd.DataFrame([0,1,1,1,0,1,0,-1,0])
df[np.sign(df[0]).diff(periods=1).eq(1)]
輸出:
0
1 1
5 1
8 0
uj5u.com熱心網友回復:
只需添加另一個條件:
filtered = df[np.sign(df[0]).diff(1).eq(1) & np.sign(df[0]).eq(1)]
輸出:
>>> filtered
0
1 1
5 1
uj5u.com熱心網友回復:
您可以使用diffand shift(以確保前一個元素為 0):
out = df[df.diff().eq(1) & df.shift().eq(0)].dropna()
再說一次,我們甚至不需要diff,因為差異總是 1,所以就shift足夠了:
out = df[df[0].eq(1) & df[0].shift().eq(0)]
輸出:
0
1 1.0
5 1.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/443641.html
