テーブル内のデータの分析を容易にするために、Python の Pandas を使用してデータをよりコンピューターに適した形式に再形成できます。 Pandas.melt() は、これを行うための関数の 1 つです。Pandas.melt() は、DataFrame をワイド形式からロング形式にピボット解除します。
ループバッシュ用
パンダが溶ける() 関数は、1 つ以上の列が識別子変数である形式に DataFrame をマッサージするのに役立ちますが、測定変数とみなされる他のすべての列は行軸に対してアンピボットされ、識別子ではない 2 つの列 (変数と値) だけが残ります。
Python Pandas.melt() 関数の構文
構文: pandas.melt(frame, id_vars=なし, value_vars=なし,
var_name=なし、value_name=’value’、col_level=なし)
パラメーター:
- フレーム : データフレーム
- id_vars[タプル、リスト、または ndarray、オプション] : 識別子変数として使用する列。
- value_vars[タプル、リスト、または ndarray、オプション]: アンピボットする列。指定しない場合、id_vars として設定されていないすべての列が使用されます。
- var_name[スカラー]: 「変数」列に使用する名前。 None の場合は、frame.columns.name または 'variable' を使用します。
- value_name[スカラー、デフォルトの「値」]: 「値」列に使用する名前。
- Col_level[整数または文字列、オプション]: 列が MultiIndex の場合は、このレベルを使用して溶解します。
サンプル データフレームの作成
ここでは、この記事で使用するサンプル DataFrame を作成しました。
Python3
# importing pandas as pd> import> pandas as pd> # creating a dataframe> df>=> pd.DataFrame({>'Name'>: {>0>:>'John'>,>1>:>'Bob'>,>2>:>'Shiela'>},> >'Course'>: {>0>:>'Masters'>,>1>:>'Graduate'>,>2>:>'Graduate'>},> >'Age'>: {>0>:>27>,>1>:>23>,>2>:>21>}})> df> |
>
>

Pandas の例での Melt () の実行
以下は、Pandas Melt() 関数をさまざまな方法で使用する方法の例です。 パンダ :
例 1: パンダのmelt()の例
この例では、pd.melt>関数は、「Name」を識別子変数として保持しながら、「Course」列をアンピボットするために使用されます。結果として得られる DataFrame には、「Name」、「variable」 (列名「Course」を含む)、および「value」 (「Course」列の対応する値を含む) の 3 つの列があります。
Python3
Javaのバブルソート
# Name is id_vars and Course is value_vars> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>])> |
>
>
出力:
Name variable value 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate>
例 2: id_vars と value_vars を使用して Pandas DataFrame の Melt() を実行する
この例では、pd.melt>関数は、識別子変数として「Name」を使用しながら、「Course」列と「Age」列をアンピボットするために使用されます。
Python3
# multiple unpivot columns> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>,>'Age'>])> |
>
>
出力:
Name variable value 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate 3 John Age 27 4 Bob Age 23 5 Shiela Age 21>
例 3: var_name と value_name を使用した Pandas DataFrame の Melt()
この例では、pd.melt>関数はカスタマイズされた列名で使用されます。 「コース」列は、「名前」を識別子として保持したままピボット解除されます。結果として得られる DataFrame には、列「Name」、「ChangedVarname」(溶融された列名の場合、「Course」に設定)、および「ChangedValname」(「Course」列の対応する値を含む) があります。
Python3
# Names of ‘variable’ and ‘value’ columns can be customized> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>],> >var_name>=>'ChangedVarname'>, value_name>=>'ChangedValname'>)> |
オラクルテーブルの作成
>
>
出力:
Name ChangedVarname ChangedValname 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate>
例 4: Pandas.melt() 関数でのignore_indexの使用
この例では、pd.melt>関数は、識別子変数として「Name」を使用しながら、「Course」列と「Age」列をアンピボットするために適用されます。元のインデックスは無視されます。ignore_index=True>パラメータ。
Python3
# multiple unpivot columns with ignore_index> result>=> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>,>'Age'>], ignore_index>=>True>)> print>(result)> |
>
>
出力:
Name variable value 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate 3 John Age 27 4 Bob Age 23 5 Shiela Age 21>