我有一個pandas資料框架,就像 -
id name1 name2 date type usage1 usage2
1 abc def 12-09-21 a 100.01 109
2 xyz wer 13-09-21 b 45 51
1 xyz def 14-09-21 b 34 100
1 abc def 13-09-21 a 50 60
1 abc def 14-09-21 a 45 10
我希望它被轉化為一種格式,如:
我希望它被轉化為一種格式。
12-09- 21 13-09-21 14-09-21id name1 name2 type usage1 usage2 usage1 usage2
1 abc def a 100。 01 109 50 60 45 10
1xyz wer b NA NA NA 34 100
2 xyz wer b NA 45 51 NA
考慮到日期列在輸出中從左到右的升序,什么是最好的方法?
uj5u.com熱心網友回復:
這本質上是一個pivot,但是你需要用swaplevel和sort_index清理列軸。這將使你在行上留下一個MultiIndex,以['id', 'name1', 'name2', 'type']作為級別,在列上留下一個MultiIndex。
import pandas as pd
#df['date'] = pd.to_datetime(df['date'])
(df.pivot(index=['id', 'name1', 'name2', 'type'], columns='date')
.swaplevel(0,1, axis=1)
.rename_axis(columns=[None, None])
.sort_index(axis=1)
)
12-09-21 13-09-21 14-09-21 >。
使用量1 使用量2 使用量1 使用量2 使用量1 使用量2
id name1 name2 type
1 abc def a 100.01 109。 0 50.0 60.0 45.0 10.0
xyz def b NaN NaN NaN NaN 34.0 100.0
2 xyz wer b NaN NaN 45.0 51.0 NaN NaN
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/324003.html
標籤:
