gpt4 book ai didi

python - 在不迭代的情况下检测 Pandas DataFrame 列中的连续重复

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:27 25 4
gpt4 key购买 nike

所以根据this answer ,最好不要遍历 Pandas DataFrame 中的行。但是,我不知道如何在不使用 for 循环的情况下解决我的问题。

我需要检测特定列中的任何连续重复(三次或更多次)。因此,例如,如果值 0 出现在特定 ID 的三个连续行中,我想知道该 ID。

ID     Value
1 0
1 0.5
1 0 <--- I need this ID, because there are three consecutive 0s.
1 0
1 0
1 0.2
2 0.1
2 0 <--- Not this one! It only appears twice in a row for this ID.
2 0
3 0
3 0

也许值得一提的是它是一个时间序列,所以顺序很重要。

最佳答案

你可以这样做:

f = lambda x:np.diff(np.r_[0,np.flatnonzero(np.diff(x))+1,x.size])[0]
df[(df[['ID','Value']].ne(df[['ID','Value']].shift()).cumsum()
.groupby(['ID','Value'])['Value'].transform(f).ge(3))]

   ID  Value
2 1 0.0
3 1 0.0
4 1 0.0

关于python - 在不迭代的情况下检测 Pandas DataFrame 列中的连续重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56886987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com