如何划分两个数据透视表

2024-10-02 18:14:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据透视表:一个是总销售额,另一个是销售额。你知道吗

示例:
enter image description hereenter image description here

如何用前两个表之间的除法结果生成第三个表?你知道吗

示例:
enter image description here

Ps:强调这两个表(销售金额和销售计数)是透视表函数的结果。你知道吗

提前谢谢。你知道吗

编辑1:

斯科特,我试过你的建议,但我不知道如何填充多索引部分的参数。。。你知道吗

如何填充这些参数?你知道吗

这是我的密码:

df1 = getDFFaturAgencyFeeSemRDABR(filtros)

df1['Month'] = df1['DataFatura'].dt.strftime('%m')     
df1['Net Agency Fee'] = df1['Agency Fee']- df1['Total Rebate']              

dfSalesAmount = pd.pivot_table(df1,                             
                    values=['Net Agency Fee'],
                    columns=['Branch'],
                    index=['Month'], 
                    aggfunc=np.sum,
                    margins=True,
                    margins_name='Total',                        
                    fill_value=0).astype(np.float64).round(2)

dfCount = pd.pivot_table(df1,                             
                    values=['Vessels Count'],
                    columns=['Branch'],
                    index=['Month'], 
                    aggfunc=np.sum,
                    margins=True,
                    margins_name='Total',                        
                    fill_value=0).astype(np.float64).round(2)


indx1 = pd.MultiIndex.from_product([['Net Agency Fee'], ???????])

indx2 = pd.MultiIndex.from_product([['Vessels Count'],???????])

colind1 = pd.MultiIndex.from_product([['Month'], ??????])


dfSalesAmount.index = indx1

dfSalesAmount.columns = colind1

Tags: columnsfromindexnetnpproducttotalpd
1条回答
网友
1楼 · 发布于 2024-10-02 18:14:06

尝试使用数据帧切片和div

import pandas as pd
import numpy as np

df1 = pd.DataFrame({'A':[1500,1700,2500,5700],
                   'B':[3000,2800,1804,7604],
                   'C':[2000,1500,1985,5485],
                   'D':[6500,6000,6289,18789]})

df2 = pd.DataFrame({'A':[4,10,13,27],
                   'B':[10,11,15,36],
                   'C':[25,80,33,138],
                   'D':[39,101,61,201]})

indx1 = pd.MultiIndex.from_product([['Total Sales'],['Vitoria','Rio De Janeiro','Sao Paulo','Total']])

indx2 = pd.MultiIndex.from_product([['Sales Count'],['Vitoria','Rio De Janeiro','Sao Paulo','Total']])

colind1 = pd.MultiIndex.from_product([['Month'],[1,2,3,'Total']])

df1.index = indx1

df1.columns = colind1

df1

df2.index = indx2

df2.columns = colind1

df_out = df1.loc['Total Sales'].div(df2.loc['Sales Count'])

df_out = df_out.iloc[:-1,:-1].assign(idx1='Sales Average')\
               .set_index('idx1', append=True).swaplevel(0,1)
print(df_out)

输出:

                                   Month                       
                                       1           2          3
idx1                                                           
Sales Average Vitoria         375.000000  300.000000  80.000000
              Rio De Janeiro  170.000000  254.545455  18.750000
              Sao Paulo       192.307692  120.266667  60.151515

相关问题 更多 >