简体   繁体   中英

Pandas Table Reshaping

I have an excel sheet in this format with message logs:

ID Source Date    Hour Interval Mgs
1  online 1/1/20  0    1        0
1  online 1/1/20  0    2        3
1  online 1/1/20  0    3        1
1  online 1/1/20  0    4        12
1  online 1/1/20  1    1        2
1  online 1/1/20  1    2        1

How do I use pandas to transform it to this format?

ID          1
Source      1
Date        1/1/20
Hour        0               1 
Interval    1   2   3   4   1   2 
Messages    0   3   1   12  2   1

I've tried the following:

multi = df.set_index(["ID", "Source", "Date"])
out = multi.T

but I got close but not there yet.

ID          1
Source      1
Date        1/1/20 1/1/20 1/1/20 1/1/20 1/1/20 1/1/20
Hour        0      0      0      0      1      1 
Interval    1      2      3      4      1      2 
Messages    0      3      1      12     2      1

Do you mean:

out = df.set_index(["ID", "Source", "Date",'Hour','Interval']).T

Output:

ID            1                
Source   online                
Date     1/1/20                
Hour          0            1   
Interval      1  2  3   4  1  2
Mgs           0  3  1  12  2  1

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM