列の値を列ヘッダーにピボットしようとしていますが、残りのデータは維持しています。ここでは、私が探しているものに最も近いものと一緒に、私の完全なコードです。これで唯一の問題は、私はend
列を維持する方法を見つけ出すことができないということです。パンダ:列を列にピボットする
import pandas as pd
starts = pd.date_range(start = '1/1/2017', freq = '31d', periods = 4).tolist()
ends = pd.date_range(start = '1/31/2017', freq = '31d', periods = 4).tolist()
df = pd.DataFrame({ 'id':['XXX','XXX','XXX','XXX','YYY','YYY','YYY','YYY'],
'start': starts + starts,
'end': ends + ends,
'type':['car','car','car','car','truck','truck','truck','truck']
}, columns = ['id','start','end','type'])
オリジナルDATAFRAME:
id start end type
0 XXX 2017-01-01 2017-01-31 car
1 XXX 2017-02-01 2017-03-03 car
2 XXX 2017-03-04 2017-04-03 car
3 XXX 2017-04-04 2017-05-04 car
4 YYY 2017-01-01 2017-01-31 truck
5 YYY 2017-02-01 2017-03-03 truck
6 YYY 2017-03-04 2017-04-03 truck
7 YYY 2017-04-04 2017-05-04 truck
私の最も近い現在のピボットの試み:
print df.pivot(index = 'start', columns = 'id', values = 'type').reset_index()
電流出力:
id start XXX YYY
0 2017-01-01 car truck
1 2017-02-01 car truck
2 2017-03-04 car truck
3 2017-04-04 car truck
所望の出力:
start end XXX YYY
0 2017-01-01 2017-01-31 car truck
1 2017-02-01 2017-03-03 car truck
2 2017-03-04 2017-04-03 car truck
3 2017-04-04 2017-05-04 car truck
ノー成功を収めて、thisとthisの両方を試してみました。
ご協力いただければ幸いです。 set_indexとアンスタックを使用して
、感謝Vaishaliの! – pshep123
インデックスとして "id"列名を削除する質問を少し更新しました。解決策は '.rename_axis(None、axis = 1)'を最後に追加することでした。 – pshep123