尝试从 python 数据帧创建多级 header - 尝试 Multiindex.from_product()
Trying to Create Multi Level header from a python dataframe - tried Multiindex.from_product()
我正在尝试将此数据帧 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'], 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
我正在尝试将此数据帧 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'], 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