好きこそものの上手なれ

他人から見れば、下手の横好きですが、そっと見守ってください。

pythonで縦に並んだデータからインデックスを決めて列方向に並べ直す

pythonで縦に並んだデータからインデックスを決めて列方向に並べ直す便利なpandasのメソッドは pivodです。


#coding=utf-8

import pandas as pd

data=[
['ルフィ',19],
['ルフィ',174],
['ルフィ','ゴムゴムの実'],
['チョッパー',17],
['チョッパー',90],
['チョッパー','ヒトヒトの実'],
['チョッパー','100ベリー'],
]

df =pd.DataFrame(data,columns=['name','attribute'])
df['ren'] = df.groupby(['name']).cumcount() # 列方向に伸ばすための連番を作成
df1 = df.pivot(index='name', columns='ren')

# df
# name attribute ren
#0 ルフィ 19 0
#1 ルフィ 174 1
#2 ルフィ ゴムゴムの実 2
#3 チョッパー 17 0
#4 チョッパー 90 1
#5 チョッパー ヒトヒトの実 2
#6 チョッパー 100ベリー 3

#df1
# attribute
#ren 0 1 2 3
#name
#チョッパー 17 90 ヒトヒトの実 100ベリー
#ルフィ 19 174 ゴムゴムの実 NaN

現場で使える! pandasデータ前処理入門 機械学習・データサイエンスで役立つ前処理手法」の本に解説あります。