gpt4 book ai didi

python - 如何对 Pandas 数据透视表进行排序,但将总数保留在表的末尾

转载 作者:行者123 更新时间:2023-12-04 17:27:16 25 4
gpt4 key购买 nike

我建立了一个数据透视表这样做:
prima_neta = df.pivot_table(index = ["seccion"], columns = "operacion", values = "prima_pesos", aggfunc = "sum", margins=True).fillna(0)

然后尝试按“全部”列(由 margins=True 生成)按降序对表格进行排序:
prima_neta.sort_values(by='All', ascending=False)
这工作正常,但原始表输出末尾的“全部”总数(当然是最高数量)作为第一行被带到顶部。

我想按降序对表格进行排序,但将“全部”(总计)金额保留在最后一行。

我怎样才能做到这一点?

最佳答案

让我们试试这个:

import pandas as pd
import numpy as np
np.random.seed(123)

# Create dummy dataframe
df = pd.DataFrame({'A':np.random.choice([*'ABC'], 36)
,'B':np.random.choice([*'xyz'], 36)
,'C':np.random.randint(0,100,36)})

# Pivot table with margins
results = df.pivot_table('C', 'A', 'B', aggfunc='sum', margins=True)

#Create temporary sortkey sort on sortkey and values, drop sortkey
result = results.assign(sortkey=results.index == 'All')\
.sort_values(['sortkey','All'], ascending=[True, False])\
.drop('sortkey', axis=1)
result

输出:
B      x    y    z   All
A
B 368 215 275 858
A 155 202 218 575
C 206 149 45 400
All 729 566 538 1833

关于python - 如何对 Pandas 数据透视表进行排序,但将总数保留在表的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62460425/

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