gpt4 book ai didi

python - 统计Python中的事件数

转载 作者:太空宇宙 更新时间:2023-11-04 09:25:52 24 4
gpt4 key购买 nike

继续我之前的 Question我需要更多帮助。

数据框就像

time eve_id  sub_id   flag
0 5 2 0
1 5 2 0
2 5 2 1
3 5 2 1
4 5 2 0
5 4 25 0
6 4 30 0
7 5 2 1

我需要在标志从 0 变为 1 时计算 eve_id,并统计时间标志的 eve_id 为 1 到 1

输出看起来像这样

time   flag  count
0 0 2
2 1 2
4 0 3

有人可以帮我吗?

最佳答案

首先,我们制作了一个石斑鱼指示器,用于检查两行之间的差异是否不等于为0,这表明存在差异。

然后我们根据这个指标分组并使用agg。从 pandas 0.25.0 开始,我们有 named aggregations :

s = df['flag'].diff().ne(0).cumsum()

grpd = df.groupby(s).agg(time=('time', 'first'),
flag=('flag', 'first'),
count=('flag', 'size')).reset_index(drop=True)

输出

   time  flag  count
0 0 0 2
1 2 1 2
2 4 0 3
3 7 1 1

如果 time 是您的索引,请使用:

grpd = df.assign(time=df.index).groupby(s).agg(time=('time', 'first'),
flag=('flag', 'first'),
count=('flag', 'size')).reset_index(drop=True)

注意:额外的行是因为最后一行和之前的行之间也存在差异

关于python - 统计Python中的事件数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57623212/

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