尝试从 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