我有一个DataFrameGroupBy,其键的结构为Hour, ID

我试图从每个小时的每个键来获取每个组的大小。

运行mygroup.size()给我输出如下:

   ID
0  41           3
   55          10
   56           1
   60           7
   65           1
...
23  2218         5
    2222         9
    2223         5
    2225         2


我想要做的是过滤此列表,这样我就可以基于键的Hour部分(0-23)获取每个组中的总数。

最佳答案

调用count并传递level=0,例如:

In [21]:
df = pd.DataFrame({'a':[0,0,1,1,1,1],'b':[1,2,3,12,3,4],'c':np.arange(6)})
df

Out[21]:
   a   b  c
0  0   1  0
1  0   2  1
2  1   3  2
3  1  12  3
4  1   3  4
5  1   4  5

In [22]:
gp = df.groupby(['a','b'])
gp.size()

Out[22]:
a  b
0  1     1
   2     1
1  3     2
   4     1
   12    1
dtype: int64

In [23]:
gp.size().count(level=0)

Out[23]:
a
0    2
1    3
dtype: int64

关于python - Pandas 仅使用该键的一部分来访问组组合键的长度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32463111/

10-12 16:58