小组计数。为什么每一列?

时间:2014-09-25 15:00:01

标签: python pandas

我经常需要知道Pandas数据框中每组中有多少条目。以下操作,但它为我的数据框中的每一列返回一个值。

df.groupby(['A', 'B', 'C']).count()

也就是说,如果我有,请说20列(其中ABC是其中三个),它将返回17在每个小组中,都是相同的(至少每次我都这样做)。

  1. 这背后的理由是什么?
  2. 有没有办法将计数限制在一列? (或者每组只返回一个值?)
  3. 这会以任何方式加快计数吗?
  4. 方法dataFrameGroupBy.count似乎没有参数来指定要对哪些列进行计数(我也无法在API ref上找到它)

1 个答案:

答案 0 :(得分:1)

groupby(...).count()返回每列中非null 值的计数。因此,每列可能会有所不同。

示例:

>>> 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()会返回每个组的size