ホームページ >バックエンド開発 >Python チュートリアル >「pd.melt()」を使用して Pandas DataFrame をワイド形式からロング形式に再形成するにはどうすればよいですか?

「pd.melt()」を使用して Pandas DataFrame をワイド形式からロング形式に再形成するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-22 14:43:14676ブラウズ

How Can I Reshape a Pandas DataFrame from Wide to Long Format Using `pd.melt()`?

パンダを使用して列を行に変換する

この質問は、日付関連の情報が複数の列に分散されている CSV データセットを、各日付が異なる形式に変換する必要性に対処します。独自の行があります。この変換を実現するために、ユーザーは pd.melt 関数を使用します。

元の CSV 構造は次のようになります。

location    name    Jan-2010    Feb-2010    March-2010
A           "test"  12          20          30
B           "foo"   18          20          25

望ましい結果は、列の場所、名前、日付、および値:

location    name    Date        Value
A           "test"  Jan-2010    12       
A           "test"  Feb-2010    20
A           "test"  March-2010  30
B           "foo"   Jan-2010    18       
B           "foo"   Feb-2010    20
B           "foo"   March-2010  25

pd.melt 関数は、データを再構築する手段を提供します。いくつかの引数を取ります:

  • id_vars: テーブルが溶解されても変更されない列。この場合、場所と名前。
  • var_name: 元の列名 (溶解前の列名) を保持する新しい列の名前。この場合、Date.
  • value_name: 元のデータ列の値を保持する列の名前。この場合、Value.
df.melt(id_vars=["location", "name"],
        var_name="Date",
        value_name="Value")

結果の DataFrame は目的の出力と一致し、各月が個別の行を占めるようになります。

以上が「pd.melt()」を使用して Pandas DataFrame をワイド形式からロング形式に再形成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。