gpt4 book ai didi

Python:计算共享同一电子邮件的不同用户 ID - Pandas 数据操作

转载 作者:行者123 更新时间:2023-12-04 15:05:05 24 4
gpt4 key购买 nike

我想返回一个数据框,该数据框仅显示 User_ID 关联了超过 1 个电子邮件的行。换句话说,我正在计算有多少个共享电子邮件的不同用户 ID - 见下文

示例数据

   Unnamed: 0    First Name  ... User_ID                      Email
0 0 Bob ... 2011 Bob@email
1 1 Dirk ... 2012 jack@email
2 2 Sarah ... 2013 Sara@email
3 3 max ... 2015 Bob@email
4 4 leo ... 2016 Sara@email

根据上表,我想要的结果是这样的(请注意,我会将值计数减少到小于 0,因为我只对具有以下特征的用户 ID 感兴趣

输出

User_ID   (Count of other User_Ids with same Domain) 
2011 1
2012 0
2013 1
2015 1
2016 1

在 SQL 中,这将像下面这样工作,我将获得所有用户 ID 的输出,这些用户 ID 的数量大于 1 个不同的关联电子邮件。有人可以建议我如何在 python 中做类似的事情吗?

SELECT User_ID, COUNT(EMAILS) AS Count
FROM dataframe
HAVING Count > 1

在 python 中,我尝试利用 value_counts 函数执行以下操作,但不知道如何使其输出上面所需的输出

df = pd.read_csv("data.csv")
#print( df['Email'].value_counts() > 1)
emailList = list(df["Email"].value_counts())

duplicates = df[df['Email'].duplicated(keep=False)]
print(duplicates.value_counts())

最佳答案

你在找吗

df.groupby('Email')['FirstName'].value_counts()

如果您想过滤具有多个名称的电子邮件。请尝试

df[df.groupby('Email')['FirstName'].transform(lambda x: x.count().sum()).gt(1)]

 df.groupby('Email')['FirstName'].agg(list).to_frame('names')



names
Email
Bob@email [Bob, max]
Sara@email [Sarah, leo]
jack@email [Dirk]

关于Python:计算共享同一电子邮件的不同用户 ID - Pandas 数据操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66309402/

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