尝试从 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 pandas 数据帧导出或写入 MS Access 表