Python 如何在dask中实现相对频率函数?

Python 如何在dask中实现相对频率函数?,python,pandas,dataframe,dask,Python,Pandas,Dataframe,Dask,我正在尝试使用dask获取类别的计数和相对百分比,在下面的数据集中按标签分组,因此: label category a 1 a 2 a 3 b 1 b 1 b 2 将成为: label category count percent a 1 1 33.33333% a 2 1

我正在尝试使用dask获取类别的计数和相对百分比,在下面的数据集中按标签分组,因此:

label    category      
a        1
a        2
a        3
b        1
b        1
b        2
将成为:

label    category    count     percent
a        1           1         33.33333%  
a        2           1         33.33333%
a        3           1         33.33333%
b        1           2         66.66666%
b        2           1         33.33333%
现在我要做的是四个部分

  • 按['label','category']对df进行分组,并将计数作为df1
  • 按标签将结果df1分组,然后对计数求和
  • 将#1与#2合并以获得计数和总数
  • 最后使用count和total计算百分比

  • 我不熟悉达斯克和熊猫,但我的方法似乎效率不高,所以想知道是否有更快的方法来进行计算。

    这就是我能做的。.仍然需要两个步骤

    df1=df.groupby(['label','category']).category.count().to_frame(name='count')
    df1['percent']=df1.div(df1.groupby(level=0).sum(),level='label')*100
    
    df1
    Out[110]: 
                    count    percent
    label category                  
    a     1             1  33.333333
          2             1  33.333333
          3             1  33.333333
    b     1             2  66.666667
          2             1  33.333333
    

    啊,非常感谢,这是我错过的
    to_frame
    片段@你今天过得好吗