melt関数の基本的な使い方

pandasのmelt関数は、データフレームを「溶かす」ための関数で、データフレームを長い形式に変換します。以下に基本的な使い方を示します。

import pandas as pd

# データフレームの作成
df = pd.DataFrame({
    'A': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'],
    'B': ['one', 'one', 'two', 'two', 'one', 'one'],
    'C': ['small', 'large', 'large', 'small', 'small', 'large'],
    'D': [1, 2, 2, 3, 3, 4],
    'E': [2, 4, 5, 5, 6, 6]
})

# melt関数の適用
melted_df = df.melt(id_vars=['A', 'B'], value_vars=['D', 'E'])

このコードでは、ABの列を固定し(id_varsに指定)、DEの列を溶かしています(value_varsに指定)。結果として得られるmelted_dfは、元のデータフレームのDEの列が一つの列にまとめられ、それぞれの値に対応するABの値とともに新しい行として表示されます。

このように、melt関数はデータフレームの形状を変更し、特定の列を保持しながら他の列を一つの列に「溶かす」ことができます。これは、データ分析や可視化を行う際に非常に便利な機能です。

melt関数の引数の詳細

pandasのmelt関数は以下のような引数を取ります。

pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None)

各引数の詳細は以下の通りです。

  • frame: データフレーム。溶かす対象のデータフレームを指定します。
  • id_vars: リストまたは配列。溶かす際に固定する列の名前を指定します。これらの列は出力データフレームにそのまま保持されます。
  • value_vars: リストまたは配列。溶かす列の名前を指定します。これらの列は出力データフレームでは一つの列にまとめられます。
  • var_name: 文字列。value_varsで指定した列の名前をまとめた新しい列の名前を指定します。指定しない場合はvariableがデフォルトとなります。
  • value_name: 文字列。value_varsで指定した列の値をまとめた新しい列の名前を指定します。指定しない場合はvalueがデフォルトとなります。
  • col_level: 整数または文字列。マルチインデックスのデータフレームを溶かす際に、どのレベルの列を使用するかを指定します。

これらの引数を適切に設定することで、melt関数は非常に柔軟なデータ変換を行うことができます。これにより、データ分析や可視化を行う際にデータフレームを必要な形状に変形することが可能となります。次のセクションでは、melt関数の具体的な使用例を見ていきましょう。

melt関数の実用例

以下に、pandasのmelt関数を使用した具体的な実用例を示します。

import pandas as pd

# データフレームの作成
df = pd.DataFrame({
    'City': ['Tokyo', 'Osaka', 'Nagoya'],
    'Temperature': [20, 25, 30],
    'Humidity': [60, 65, 70]
})

print("Original DataFrame:")
print(df)

# melt関数の適用
melted_df = df.melt(id_vars='City', var_name='Measurement', value_name='Value')

print("\nMelted DataFrame:")
print(melted_df)

このコードでは、都市の気温と湿度のデータを持つデータフレームを作成しています。melt関数を適用することで、このデータフレームは「都市」、「測定項目」、「値」の3つの列を持つ新しいデータフレームに変換されます。これにより、各都市の気温と湿度のデータが一つの列にまとめられ、それぞれの値に対応する都市名とともに新しい行として表示されます。

このように、melt関数はデータフレームの形状を変更し、特定の列を保持しながら他の列を一つの列に「溶かす」ことができます。これは、データ分析や可視化を行う際に非常に便利な機能です。次のセクションでは、melt関数を使ったデータの再形成について見ていきましょう。

melt関数を使ったデータの再形成

melt関数は、データフレームの再形成に非常に便利なツールです。特に、複数の測定値が同じデータフレームに含まれている場合や、列名が変数値を表している場合などに有用です。

以下に、melt関数を使ったデータの再形成の例を示します。

import pandas as pd

# データフレームの作成
df = pd.DataFrame({
    'City': ['Tokyo', 'Osaka', 'Nagoya'],
    'Temperature_Jan': [5, 6, 7],
    'Temperature_Feb': [8, 9, 10],
    'Humidity_Jan': [60, 65, 70],
    'Humidity_Feb': [65, 70, 75]
})

print("Original DataFrame:")
print(df)

# melt関数の適用
melted_df = df.melt(id_vars='City', var_name='Measurement_Month', value_name='Value')

print("\nMelted DataFrame:")
print(melted_df)

このコードでは、都市ごとの月別の気温と湿度のデータを持つデータフレームを作成しています。melt関数を適用することで、このデータフレームは「都市」、「測定項目_月」、「値」の3つの列を持つ新しいデータフレームに変換されます。これにより、各都市の月別の気温と湿度のデータが一つの列にまとめられ、それぞれの値に対応する都市名とともに新しい行として表示されます。

このように、melt関数を使うことで、データフレームの再形成を行い、データの視覚化や分析をより容易に行うことができます。この機能を理解し活用することで、pandasを使ったデータ分析の幅が広がります。次のセクションでは、さらに詳細な使用例を見ていきましょう。

投稿者 kitagawa

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です