【问题标题】: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:“唯一”的长度和列数似乎不一致
  • 他们看起来确实和我一样。

标签: pandas group-by count


【解决方案1】:

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

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

输出:

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

【讨论】:

    猜你喜欢
    • 2022-01-12
    • 2021-06-08
    • 1970-01-01
    • 2014-07-11
    • 2018-04-29
    • 2017-03-21
    • 1970-01-01
    相关资源
    最近更新 更多