我经常需要知道 Pandas 数据框中每个组中有多少条目。以下代码执行此操作,但它为我的数据框中的每一列返回一个值。
df.groupby(['A', 'B', 'C']).count()
也就是说,如果我有,请说 20
列(其中 A
、B
和 C
是三个),它会返回 17
计数,每个组中的计数都是相同的(至少每次我都这样做)。
- 这背后的理由是什么?
- 有什么方法可以将计数限制为仅一列吗? (或者让它每组只返回一个值?)
- 这会以某种方式加快计数速度吗?
方法 dataFrameGroupBy.count
似乎没有参数来指定在哪些列上进行计数(我也无法在 API ref 上找到它)
最佳答案
groupby(...).count()
返回每列中非空值的计数。因此每列的情况可能会有所不同。
示例:
>>> df
jim joe jolie
0 4 NaN 4
1 8 0 NaN
>>> df.groupby('jim').count()
joe jolie
jim
4 0 1
8 1 0
.groupby(...).size()
返回每个组的大小
。
关于python - 分组计数。为什么每列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26041818/