【问题标题】:pandas aggregate count in dataframe数据框中的熊猫总数
【发布时间】:2017-05-31 15:17:12
【问题描述】:

我有一个DataFrame,我正在使用.aggregate({'col1': np.sum}),这将对col1 中的值进行求和并将它们聚合在一起。是否可以进行计数,例如.aggregate({'col1': some count function here})?

【问题讨论】:

  • {'col1': 'count'} 或 {'col1': 'size'} 或 {'col1': 'nunique'} 取决于您的用例。
  • 或len(内置),我认为这是最易读的。
  • len 通常比'size' 慢,因为它是一个内置的python,而不是引擎盖下的numpy。

标签: pandas indexing dataframe counting


【解决方案1】:

您可以使用'size'、'count' 或'nunique',具体取决于您的用例。它们之间的区别是:

  • 'size':计数包括NaN 和重复值。
  • 'count':计数不包括NaN,但包括重复。
  • 'nunique':唯一值的计数,不包括重复和NaN。

例如,考虑以下 DataFrame:

df = pd.DataFrame({'col0': list('aabbcc'), 'col1': [1, 1, 2, np.nan, 3, 4]})

  col0  col1
0    a   1.0
1    a   1.0
2    b   2.0
3    b   NaN
4    c   3.0
5    c   4.0

然后使用描述的三个函数:

df.groupby('col0')['col1'].agg(['size', 'count', 'nunique'])

      size  count  nunique
col0                      
a        2      2        1
b        2      1        1
c        2      2        2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    相关资源
    最近更新 更多