我试图弄清楚如何在我的多索引的最外层求和。因此,我想根据各个运营商以及为其列出的所有商店对 COUNTS 列求和。
df=pd.DataFrame(data.groupby('OPERATOR').SHOP.value_counts())
df=df.rename(columns={'SHOP':'COUNTS'})
df['COUNTS'] = df['COUNTS'].astype(float)
df['percentage']=df.groupby(['OPERATOR'])['COUNTS'].sum()
df['percentage']=df.sum(axis=0, level=['OPERATOR', 'SHOP'])
df.head()
COUNTS percentage
OPERATOR SHOP
AVIANCA CC9 3.0 3.0
FF9 1.0 1.0
IHI 1.0 1.0
Aegean HA9 33.0 33.0
IN9 24.0 24.0
当我使用 df.sum 调用时,它可以让我在两个级别上调用它,但是当我将其更改为 df.sum(axis=0, level=['OPERATOR'] 时,它会导致百分比列为 NaN。我最初的计数列是 int 所以我认为这可能是问题所在,并转换为浮点数,但这并没有解决问题。这是所需的输出:
COUNTS percentage
OPERATOR SHOP
AVIANCA CC9 3.0 5.0
FF9 1.0 5.0
IHI 1.0 5.0
Aegean HA9 33.0 57.0
IN9 24.0 57.0
(这只是计算每个商店相对于运营商的百分比的一个垫脚石,即最终的最终输出将是):
COUNTS percentage
OPERATOR SHOP
AVIANCA CC9 3.0 .6
FF9 1.0 .2
IHI 1.0 .2
Aegean HA9 33.0 .58
IN9 24.0 .42
因此,如果您还包括最后一步,则可以加分!!请帮我!!!