gpt4 book ai didi

python - 如何在 Pandas Python 中使用电子邮件 ID 查找连续记录

转载 作者:行者123 更新时间:2023-12-03 21:06:56 26 4
gpt4 key购买 nike

我有一个 DataFrame,里面有学生和他们类的日子

Email             Day
mala@gmail.com 1
vika@gmail.com 1
rupa@gmail.com 1
vika@gmail.com 2
vika@gmail.com 3
rupa@gmail.com 3
预期输出:
Email                 Streak
mala@gmail.com 1
rupa@gmail.com 1
vika@gmail.com 3
结果必须是这样的,只有那些连续类的人必须打印出来
我如何使用 Pandas 来做到这一点?

最佳答案

这是返回每个 'Email' 中最长连续连续记录长度的一种方法。 .
第一 drop_duplicates这样,同一电子邮件的重复天数不会破坏任何条纹和排序。然后为连续天数组创建标签,取天数差异不等于 1 的总和。 .最后由 'Email' 分组和这个组标签并找到最大尺寸。
为清楚起见,我在最后添加了一个额外的组,在第 5、6、7 天连续 3 次。

print(df)

Email Day
mala@gmail.com 1
vika@gmail.com 1
rupa@gmail.com 1
vika@gmail.com 2
vika@gmail.com 3
rupa@gmail.com 3
foo@gmail.com 1
foo@gmail.com 5
foo@gmail.com 6
foo@gmail.com 7
df1 = df.drop_duplicates(['Email', 'Day']).sort_values(['Email', 'Day'])
s1 = df1.groupby('Email').Day.diff().ne(1).cumsum()

df1.groupby(['Email', s1]).size().groupby('Email').max()
Email
foo@gmail.com 3
mala@gmail.com 1
rupa@gmail.com 1
vika@gmail.com 3
dtype: int64

关于python - 如何在 Pandas Python 中使用电子邮件 ID 查找连续记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66244373/

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