熊猫中多索引的百分比



我需要找到多索引列('count'(的百分比。我的数据帧看起来像:

            count
A  week1     264
   week2      29
B  week1     152
   week2      15

我想添加一个"百分比"列来制作

            count percent
A  week1     264      0.9
   week2      29      0.1
B  week1     152     0.91
   week2      15     0.09

我知道我可以通过

找到我想要的总数
mydf.sum(level=[0, 1])

,但我似乎无法弄清楚如何将其转变为一个百分比。

您可以使用groupbytransform

进行此操作
df['percent'] = df.groupby(level=0).transform(lambda x: (x / x.sum()).round(2))
#          count  percent
# A week1    264     0.90
#   week2     29     0.10
# B week1    152     0.91
#   week2     15     0.09

没有groupby

df['percentage']=df['count'].div(df['count'].sum(level=0),level=0)
df
Out[128]: 
         count  percentage
x b                       
A week1    264    0.901024
  week2     29    0.098976
B week1    152    0.910180
  week2     15    0.089820

最新更新