変形とピボット操作
階層型インデックスによる変形
階層型インデックスを用いると、データフレームに含まれるデータの形状を一貫した方法で変更できます。基本となるアクションは次の2つです。
stack
データ内の各列を行へとピボット(「回転」)させる。
unstack
各行を列へと回転させる。
code: Python
data = pd.DataFrame(np.arange(6).reshape((2, 3)),
name='number'))
data
--------------------------------------------------------------------------
number one two three
state
Ohio 0 1 2
Colorado 3 4 5
--------------------------------------------------------------------------
code: Python
result = data.stack()
result
--------------------------------------------------------------------------
state number
Ohio one 0
two 1
three 2
Colorado one 3
two 4
three 5
dtype: int32
--------------------------------------------------------------------------
code: Python
result.unstack()
--------------------------------------------------------------------------
number one two three
state
Ohio 0 1 2
Colorado 3 4 5
--------------------------------------------------------------------------
code: Python
# 引数の列をunstackする
result.unstack(0)
--------------------------------------------------------------------------
state Ohio Colorado
number
one 0 3
two 1 4
three 2 5
--------------------------------------------------------------------------
code: Python
# 引数の列をunstackする
result.unstack('state')
--------------------------------------------------------------------------
state Ohio Colorado
number
one 0 3
two 1 4
three 2 5
--------------------------------------------------------------------------