gpt4 book ai didi

python - 选择 Pandas 中条件为真的所有行

转载 作者:太空狗 更新时间:2023-10-30 02:36:25 25 4
gpt4 key购买 nike

我有一个数据框

 Id  Seqno. Event
1 2 A
1 3 B
1 5 A
1 6 A
1 7 D
2 0 E
2 1 A
2 2 B
2 4 A
2 6 B

我想获取自每个 ID 最近出现模式 A =​​ 2 以来发生的所有事件。序号。是每个 ID 的序列号。输出将是

 Id  Seqno. Event 
1 5 A
1 6 A
1 7 D
2 1 A
2 2 B
2 4 A
2 6 B

到目前为止,我已经尝试过了,

  y=x.groupby('Id').apply( lambda 
x:x.eventtype.eq('A').cumsum().tail(2)).reset_index()
p=y.groupby('Id').apply(lambda x:
x.iloc[0]).reset_index(drop=True)
q= x.reset_index()
s= pd.merge(q,p,on='Id')
dd= s[s['index']>=s['level_1']]

我想知道有没有什么好的方法。

最佳答案

groupbycumsum 一起使用,从每组 A 的计数中减去它,然后过滤:

g = df['Event'].eq('A').groupby(df['Id'])
df[(g.transform('sum') - g.cumsum()).le(1)]

Id Seqno. Event
2 1 5 A
3 1 6 A
4 1 7 D
6 2 1 A
7 2 2 B
8 2 4 A
9 2 6 B

关于python - 选择 Pandas 中条件为真的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54316604/

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