import pandas as pd
Pythonで横持ちのデータを縦持ちに、縦持ちのデータを横持ちに整形する方法です。
使用するのは、Pythonのpandasライブラリの、stackメソッドとunstackメソッドです。
横持ちとは、項目が増えたときに横に増えるデータ構造のことで、縦に増えるデータ構造を縦持ちと言います。
df = pd.read_csv('./sample.csv')
df.head()
このような横持ちのデータフレームを用意します。
stackメソッドを使用してみましょう。
列だったラベルが行に追加され、縦持ちのデータに整形されました。
また、インデックスが階層化され、マルチインデックス型であることが確認できます。
a = df.stack()
a.head(10)
次に、縦持ちのデータを横持ちに整形してみましょう。
先ほど縦持ちにしたデータフレームに、unstackメソッドを使用します。
内側のインデックスがカラムとなり、元の状態に戻すことができました。
b = a.unstack()
b.head()