gpt4 book ai didi

python - 使用MultiIndex计算pandas pivot_table中的小计

转载 作者:太空宇宙 更新时间:2023-11-04 03:04:19 24 4
gpt4 key购买 nike

我在数据框中有以下原始数据:

   BROKER    VENUE  QUANTITY
0 BrokerA Venue_1 300
1 BrokerA Venue_2 400
2 BrokerA Venue_2 1400
3 BrokerA Venue_3 800
4 BrokerB Venue_2 500
5 BrokerB Venue_3 1100
6 BrokerC Venue_1 1000
7 BrokerC Venue_1 1200
8 BrokerC Venue_2 17000

我想对数据做一些总结,看看每个经纪人向每个场所发送了多少,所以我创建了一个 pivot_table:

pt = df.pivot_table(index=['BROKER', 'VENUE'], values=['QUANTITY'], aggfunc=np.sum)

结果如预期:

                 QUANTITY
BROKER VENUE
BrokerA Venue_1 300.0
Venue_2 1800.0
Venue_3 800.0
BrokerB Venue_2 500.0
Venue_3 1100.0
BrokerC Venue_1 2200.0
Venue_2 17000.0

我还想知道每个经纪人总共发送了多少。并将其显示在同一张表中。我可以通过键入 df.groupby('BROKER').sum() 获取该信息,但是如何将其作为名为 BROKER_TOTAL 的列添加到我的数据透视表中?

注意:这个问题很相似,但似乎是在旧版本上,我根据我的情况调整它的最佳猜测没有奏效:Pandas Pivot tables row subtotals

最佳答案

您可以创建 MultiIndex.from_arrays对于 df1concat它到 pt 和最后 sort_index :

df1 = df.groupby('BROKER').sum()
df1.index = pd.MultiIndex.from_arrays([df1.index + '_total', len(df1.index) * ['']])
print (df1)
QUANTITY
BrokerA_total 2900
BrokerB_total 1600
BrokerC_total 19200

print (pd.concat([pt, df1]).sort_index())
QUANTITY
BROKER VENUE
BrokerA Venue_1 300
Venue_2 1800
Venue_3 800
BrokerA_total 2900
BrokerB Venue_2 500
Venue_3 1100
BrokerB_total 1600
BrokerC Venue_1 2200
Venue_2 17000
BrokerC_total 19200

关于python - 使用MultiIndex计算pandas pivot_table中的小计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39966663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com