【毎日Python】Pythonで横持ちのデータを縦持ちに整形する方法|pandas.melt

import pandas as pd

Pythonで、横持ちのデータを縦持ちデータに整形する方法です。
使用するのはPythonのpandasライブラリのmeltメソッドです。
横持ちとは、項目が増えたときに横に増えるデータ構造のことを指し、縦に増えるデータ構造を縦持ちと言います。

df = pd. read_csv('sample_data/data_pivot.csv')
df

今回はこのようなデータフレームを使用します。

pd.melt(df, id_vars='都道府県名')

meltの第一引数に、整形したいデータフレーム、引数id_varsに軸にしたいカラムを指定します。
指定した都道府県を軸に、縦持ちのデータに整形されました。

pd.melt(df, id_vars='都道府県名', value_vars='2010.0')

引数にvalue_varsでカラムを指定すると、そのカラムの要素だけで表示させることができます。
実行します。
都道府県を軸に、指定した2010の要素だけが表示されました。

pd.melt(df, id_vars='都道府県名', var_name='西暦')

variableというカラム名を変更してみましょう。
引数にvar_nameで、変更したい名前を指定します。
実行します。
名前を西暦に変更できました。

pd.melt(df, id_vars='都道府県名', var_name='西暦', value_name='人口')

valueというカラム名も変更してみましょう。
引数にvalue_nameで、変更したい名前を指定して実行します。
名前を人口に変更できました。

関連メソッド

【毎日Python】Pythonでデータフレームを縦持ちデータから横持ちに整形する方法|pandas.pivot

【毎日Python】Pythonで横持ちデータと縦持ちデータの整形|DataFrame.stack/unstack