首页  >  文章  >  后端开发  >  如何计算 Pandas 中按域分组的不同值?

如何计算 Pandas 中按域分组的不同值?

DDD
DDD原创
2024-10-18 15:51:03416浏览

How to Count Distinct Values Grouped by Domain in Pandas?

计算 Pandas 中按域分组的不同值

要确定每个域中的唯一用户 ID,您可以使用 Pandas 的 nunique()功能。此函数计算指定列中由一个或多个其他列分组的不同值的数量。

在您的情况下,您可以按域对数据进行分组,并使用 nunique() 来计算 ID 中的唯一值列:

<code class="python">df.groupby('domain')['ID'].nunique()</code>

这将生成一个 DataFrame,其中域作为索引,每个域的唯一 ID 计数作为值:

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

如果您的域值具有前导或尾随单引号 ('),您可以在使用 str.strip("'") 方法进行分组之前删除它们:

<code class="python">df.groupby(df.domain.str.strip("'"))['ID'].nunique()</code>

或者,您可以使用以下方法在输出 DataFrame 中保留域列名称: as_index=False 的 agg() 函数:

<code class="python">df.groupby(by='domain', as_index=False).agg({'ID': pd.Series.nunique})</code>

此方法返回一个包含域列和一个名为 ID 的新列的 DataFrame,其中包含每个域的唯一 ID 计数。

以上是如何计算 Pandas 中按域分组的不同值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn