gpt4 book ai didi

python - 使用 Pandas 计算每个组的唯一值

转载 作者:IT老高 更新时间:2023-10-28 12:32:53 25 4
gpt4 key购买 nike

我需要计算每个 domain 中唯一的 ID 值。

我有数据:

ID, domain
123, 'vk.com'
123, 'vk.com'
123, 'twitter.com'
456, 'vk.com'
456, 'facebook.com'
456, 'vk.com'
456, 'google.com'
789, 'twitter.com'
789, 'vk.com'

我试试 df.groupby(['domain', 'ID']).count()

但我想得到

domain, count
vk.com 3
twitter.com 2
facebook.com 1
google.com 1

最佳答案

您需要 nunique :

df = df.groupby('domain')['ID'].nunique()

print (df)
domain
'facebook.com' 1
'google.com' 1
'twitter.com' 2
'vk.com' 3
Name: ID, dtype: int64

如果您需要strip ' 个字符:

df = df.ID.groupby([df.domain.str.strip("'")]).nunique()
print (df)
domain
facebook.com 1
google.com 1
twitter.com 2
vk.com 3
Name: ID, dtype: int64

或作为 Jon Clements评论:

df.groupby(df.domain.str.strip("'"))['ID'].nunique()

您可以像这样保留列名:

df = df.groupby(by='domain', as_index=False).agg({'ID': pd.Series.nunique})
print(df)
domain ID
0 fb 1
1 ggl 1
2 twitter 2
3 vk 3

区别在于nunique()返回一个Series,agg()返回一个DataFrame。

关于python - 使用 Pandas 计算每个组的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38309729/

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