gpt4 book ai didi

python - 如何根据多索引 Pandas 数据框中的索引级别获取小计

转载 作者:行者123 更新时间:2023-11-28 22:25:01 24 4
gpt4 key购买 nike

我在 pandas 中有一个数据框,如下所示:

columns               Year_1  Year_2
Idx_lvl_0 Idx_lvl_1
Cons. Prod_1 156 1541
Prod_2 312 2311
Del. Prod_1 23 12
Prod_2 0 4

问题:如何根据Idx_lvl_0得到小计(Cons_total和Del_total)如下。

columns               Year_1  Year_2
Idx_lvl_0 Idx_lvl_1
Cons. Prod_1 156 1541
Prod_2 312 2311
Cons_total 468 3852
Del. Prod_1 23 12
Prod_2 0 4
Del_total 23 16

最佳答案

这是一种方法。在 dfs

中,在 level=0 处进行 sum 总计
In [1382]: dfs = df.sum(level=0)

如果顺序不重要,只需附加附加索引的结果即可。

In [1383]: df.append(dfs.assign(Idx_lvl_1=dfs.index.str[:-1] + '_Total')
.set_index('Idx_lvl_1', append=True))
Out[1383]:
Year_1 Year_2
Idx_lvl_0 Idx_lvl_1
Cons. Prod_1 156 1541
Prod_2 312 2311
Del. Prod_1 23 12
Prod_2 0 4
Cons. Cons_Total 468 3852
Del. Del_Total 23 16

排序可以使用sort_index

In [1384]: df.append(dfs.assign(Idx_lvl_1=dfs.index.str[:-1] + '_Total')
.set_index('Idx_lvl_1', append=True)).sort_index()
Out[1384]:
Year_1 Year_2
Idx_lvl_0 Idx_lvl_1
Cons. Cons_Total 468 3852
Prod_1 156 1541
Prod_2 312 2311
Del. Del_Total 23 16
Prod_1 23 12
Prod_2 0 4

dfs

In [1385]: dfs
Out[1385]:
Year_1 Year_2
Idx_lvl_0
Cons. 468 3852
Del. 23 16

关于python - 如何根据多索引 Pandas 数据框中的索引级别获取小计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45856724/

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