首页 > 后端开发 > Python教程 > 如何计算熊猫群体中的唯一值?

如何计算熊猫群体中的唯一值?

Patricia Arquette
发布: 2024-10-18 15:52:03
原创
252 人浏览过

How to Count Unique Values in Groups with Pandas?

使用 Pandas 计算组中的唯一值

在处理包含分组到类别中的多个变量的数据集时,通常有必要确定数量与每个组相关的唯一值。 Pandas 是一种广泛使用的用于数据操作的 Python 库,它提供了多种方法来计算组内的唯一值。

一个常见的需求是计算每个域内唯一标识符的数量。给定一个包含 ID 和域列的数据框,我们寻求获得显示每个域的唯一 ID 计数的结果。

具体而言,考虑数据:

      ID   domain
0    123   vk.com
1    123   vk.com
2    123  twitter.com
3    456   vk.com
4    456  facebook.com
5    456   vk.com
6    456   google.com
7    789  twitter.com
8    789   vk.com
登录后复制

我们目标是实现以下输出:

domain  count
vk.com       3
twitter.com   2
facebook.com  1
google.com    1
登录后复制

为了实现这一点,我们可以在 Pandas groupby 操作中使用 nunique() 函数。通过按域列对数据框进行分组,然后将 nunique() 函数应用于 ID 列,我们可以获得每个域的唯一值的计数。生成的数据框将包含所需的结果:

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

print(df)
登录后复制

但是,在某些情况下,数据可能包含域名中的单引号等字符。为了处理这种情况,我们可以利用 str.strip("'") 函数在分组和计数之前删除单引号。这可以实现为:

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

print(df)
登录后复制

或者,我们可以通过在 groupby 操作中链接 str.strip("'") 函数来简化代码:

df.groupby(df.domain.str.strip("'"))['ID'].nunique()
登录后复制

保留结果数据框中的域列,我们可以使用带有 as_index=False 参数的 agg() 函数:

df = df.groupby(by='domain', as_index=False).agg({'ID': pd.Series.nunique})

print(df)
登录后复制

此方法将返回一个包含域和计数列的数据框,其中 count表示与每个域关联的唯一 ID 的数量。

以上是如何计算熊猫群体中的唯一值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板