尝试从 python 数据帧创建多级标头-尝试 Multiindex.from_product() [重复]

Posted

技术标签:

【中文标题】尝试从 python 数据帧创建多级标头-尝试 Multiindex.from_product() [重复]【英文标题】:Trying to Create Multi Level header from a python dataframe - tried Multiindex.from_product() [duplicate] 【发布时间】:2022-01-10 19:27:24 【问题描述】:

我正在尝试将此数据帧 Output1 转换为它下面的 Output2。我尝试了各种方法,但现在被难住了。我得到的最接近的是使用 pd.MultiIndex.from_product() 但显然没有正确执行。有任何想法吗?提前感谢您的帮助。

Output1:

Date        Name    Raised  Recvd   Donated
1/1/2020    John    18320   13374   6687
1/1/2020    Mary    2270    1044    522
1/1/2020    David   18086   9947    4974
2/1/2020    John    18806   7334    3667
2/1/2020    Mary    9350    7854    3927
2/1/2020    David   13009   8456    4228
3/1/2020    John    12597   6299    3149
3/1/2020    Mary    17277   7429    3715
3/1/2020    David   8894    2935    1468
4/1/2020    John    16068   13176   6588
4/1/2020    Mary    10666   6293    3146
4/1/2020    David   4559    2006    1003

Output2:

            John                    Mary                    David       
Date        Raised  Recvd   Donated Raised  Recvd   Donated Raised  Recvd   Donated
1/1/2020    18320   13374   6687    2270    1044    522     18086   9947    4974
2/1/2020    18806   7334    3667    9350    7854    3927    13009   8456    4228
3/1/2020    12597   6299    3149    17277   7429    3715    8894    2935    1468
4/1/2020    16068   13176   6588    10666   6293    3146    4559    2006    1003

【问题讨论】:

df.pivot(index="Date", columns="Name") 不起作用吗? 感谢 Asish - 这很有帮助。 【参考方案1】:
df.pivot(index=['Date'], columns=['Name'], values=None).swaplevel(axis=1).sort_values('Name', axis=1)

Name      David                 John                  Mary
         Raised Recvd Donated Raised  Recvd Donated Raised Recvd Donated
Date
1/1/2020  18086  9947    4974  18320  13374    6687   2270  1044     522
2/1/2020  13009  8456    4228  18806   7334    3667   9350  7854    3927
3/1/2020   8894  2935    1468  12597   6299    3149  17277  7429    3715
4/1/2020   4559  2006    1003  16068  13176    6588  10666  6293    3146

【讨论】:

非常感谢乔纳森·莱昂

以上是关于尝试从 python 数据帧创建多级标头-尝试 Multiindex.from_product() [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从单个数据帧创建多个子集,无需替换

从两个熊猫数据框创建一个python字典

如何从power bi中的python函数返回单个数据帧

将数据从 python pandas 数据帧导出或写入 MS Access 表

如何在 python 中消除 apache spark 数据帧中的标头和尾标

Python 按当前日期(年月日)创建多级目录的方法