pandas DataFrame行列転置
3431 ワード
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(6).reshape(2,3),index=("AA","BB"),columns=["three","two","one"])
print(df)
three two one
AA 0 1 2
BB 3 4 5
表には行列方向にインデックス(DataFrameに似ている)があり、カッコ構造は「列方向」のインデックス(階層化されたSeriesに似ている)のみで、構造はスタック(Series-stack、記憶しやすい)に偏っている.stack関数は、「表構造」から「カッコ構造」にデータを変換し、行インデックスを列インデックスに変換します.逆に、unstack関数は、「カッコ構造」から「表構造」にデータを変換します.つまり、その階層の列インデックスを行インデックスに変換します.
# , Series
df2 = df.stack()
print(df2)
AA three 0
two 1
one 2
BB three 3
two 4
one 5
dtype: int64
df.stack()はdfフォーマットを表形式からカッコ構造に変換する
#
df3 = df2.unstack(0)
print(df3)
AA BB
three 0 3
two 1 4
one 2 5
# unstack() unstack(1)
df3 = df2.unstack()
print(df3)
three two one
AA 0 1 2
BB 3 4 5