熊猫数据框列的分组和计数

Posted

技术标签:

【中文标题】熊猫数据框列的分组和计数【英文标题】:Group by and count of a pandas dataframe column 【发布时间】:2021-12-23 10:07:11 【问题描述】:

我有一个 pandas 数据框,我试图在其中对一列进行分组并获取另一列的唯一值。

  id    name   
  a-1   sfdad
  a-1   sfdad
  a-1   oiuoi
  a-2   oqrwq
  a-2   oqrwq
  a-2   ljlsg
  a-2   uoire

我使用以下方法进行分组:

  df = df.groupby('id')['name'].agg(['unique'])
  df = df.reset_index()

然后当我使用下面的语句对列“唯一”进行计数时,它与 df['unique'] 的结果不一致。 df['unique'] 的长度和下面的语句好像不一样。

 df.groupby('id')['name'].nunique()

结果

id   unique                count
a-1  [sfdad,oiuoi]         2
a-2  [oqrwq,ljlsg,uoire]   3

【问题讨论】:

它似乎按预期工作。有什么不同吗?你得到了什么,你期望什么? @Tranbi:“唯一”的长度和列数似乎不一致 他们看起来确实和我一样。 【参考方案1】:

您可以使用agg 一次计算多项内容。这必然是对齐的:

df.groupby('id')['name'].agg(['unique', 'nunique'])

输出:

                    unique  nunique
id                                 
a-1         [sfdad, oiuoi]        2
a-2  [oqrwq, ljlsg, uoire]        3

【讨论】:

以上是关于熊猫数据框列的分组和计数的主要内容,如果未能解决你的问题,请参考以下文章

在熊猫数据框中按日期和计数值分组

熊猫,分组和计数

熊猫数据框按列位置分组

按一列分组并在熊猫中找到另一列的总和和最大值

如何在没有分组的情况下连接熊猫中数据框一列的所有行[重复]

Python pandas 通过对现有列进行分组来创建其他数据框列