gpt4 book ai didi

python - pandas:将数据透视表列重新排序为任意顺序

转载 作者:行者123 更新时间:2023-12-01 08:37:52 25 4
gpt4 key购买 nike

假设我有一个如下所示的数据透视表:

                             completed_olns                  total_completed_olns
work_type A B C
employee
Employee1 94 1163 1 1258
Employee2 168 770 4 942
Employee3 173 746 8 927

如何将 A、B、C 列重新排列为任意顺序,例如 B、A、C?

此数据正在从数据库输出,并使用 pd.read_csv() 通过 csv 读取

我尝试过pivot.sort_index(level=1, axis=1, ascending=False),这让我更接近但不是我需要的。

我还尝试了 pivot = hub[['B', 'A', 'C']] 这给了我:

KeyError:“['B'、'A'、'C'] 不在索引中”

这是我发现的两个最常见的建议。

最佳答案

.reindexlevel参数一起使用

示例数据

import pandas as pd
import numpy as np

df = pd.DataFrame(data = np.random.randint(1,10,(3,6)))
df.columns = pd.MultiIndex.from_product([['collected', 'total_collected'], ['A','B','C']])
# collected total_collected
# A B C A B C
#0 2 6 9 9 6 6
#1 5 4 4 5 2 6
#2 8 9 3 9 2 7

代码

df.reindex(axis=1, level=1, labels=['B', 'A', 'C'])
# collected total_collected
# B A C B A C
#0 6 2 9 6 9 6
#1 4 5 4 2 5 6
#2 9 8 3 2 9 7

如果组缺少标签或标签不存在,则不会插入所有 NaN

df.iloc[:, :-1].reindex(axis=1, level=1, labels=['B', 'A', 'C', 'D'])
# collected total_collected
# B A C B A
#0 6 2 9 6 9
#1 4 5 4 2 5
#2 9 8 3 2 9

关于python - pandas:将数据透视表列重新排序为任意顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53639393/

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