pandas - 使用 pandas.dataframe.groupby.count 计算每个组的条目
问题描述
注意:我很抱歉错过了无意错字的报价。它在下面更正。感谢 Beny 指出错字。
在将 groupby 应用于列后,我试图计算每个组中的条目数,但得到了一些无法解释的东西。请帮忙。下面是我的代码
data=[366, 366, 366, 366, 1, 2, 3]
df=pd.DataFrame(data, columns=['id'])
df.groupby('id').count()
我得到了
id
1
2
3
366
我还发现只有当我做类似的事情时
df.groupby('id')['id'].count()
我有
id count
1 1
2 1
3 1
366 4
看起来是因为 groupby 已应用于“id”,因此除非明确指出,否则无法应用 agg 函数。
对此有何解释?谢谢。
解决方案
你应该做双引号
df.groupby('id').size()
Out[106]:
id
1 1
2 1
3 1
366 4
dtype: int64
当传递 id 时,它是对象的 id 而不是id
数据框中的
更像
df.id.value_counts()
Out[107]:
366 4
3 1
2 1
1 1
Name: id, dtype: int64
推荐阅读
- java - arduino 和 java 之间的串行通信“检测到致命错误”
- python - 我不明白为什么我的约束不连续?
- plot - 使用 sympy 时 y 轴不自动缩放
- python - 在熊猫中将一行乘以前一行(具有特定名称)
- c# - 仅当托管在 VM 的 IIS 服务器中但不在 localhost 中时,才会在 Blazor 应用程序中发生 Grpc 错误
- flutter - 将 BlocListener 与 Navigator PushNamed 一起使用会导致歧义
- python - AttributeError: 'bytes' 对象没有属性 'presence_of_element_located'
- javascript - 在 nuxt 中使用路由对象替换路径
- python - 将递归问题代码从 Python 转换为 Common Lisp
- d3.js - d3 事件处理程序的 d3.js 单元测试