我正在尝试使用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%
现在我这样做是4部分。
对于dask和pandas来说是新手,但我的方法似乎效率低下,所以想知道是否有更快的方法来进行此计算。
答案 0 :(得分:2)
这就是我能做的..还需要两步......
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