ホームページ > バックエンド開発 > Python チュートリアル > Pandas Melt() を使用して列を行に変換するにはどうすればよいですか?

Pandas Melt() を使用して列を行に変換するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-21 13:35:09
オリジナル
446 人が閲覧しました

How Can I Transform Columns into Rows Using Pandas melt()?

Pandas を使用して列を行に変換する

データ分析では、可読性と分析を向上させるためにデータセットを再構築すると便利な場合があります。一般的な変換では、列を行に変換します。この記事では、Pandas ライブラリを使用してこの操作を実行する方法について説明します。

次に示すように、列ヘッダーに場所と日付固有の情報が格納されたデータセットを考えます。

1

2

3

4

| location | name | Jan-2010 | Feb-2010 | March-2010 |

|---|---|---|---|---|

| A        | "test" | 12 | 20 | 30 |

| B        | "foo"  | 18 | 20 | 25 |

ログイン後にコピー

目標は次のとおりです。次のように、各日付が行に対応する形式にデータを再形成します。

1

2

3

4

5

6

7

8

| 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 |

ログイン後にコピー

この変換を実現するには、Pandasメルト機能を提供します。 DataFrame にメルトを適用し、行識別子 (id_vars) として保持する列と、新しい列の列ヘッダー (var_name と value_name) を指定するだけです。

1

2

3

4

5

import pandas as pd

 

df.melt(id_vars=["location", "name"],

        var_name="Date",

        value_name="Value")

ログイン後にコピー

0.20 より前の Pandas バージョンの場合、わずかにメルトとソートの組み合わせを含む、別のアプローチが必要です:

1

2

3

4

5

6

df2 = pd.melt(df,

                  id_vars=["location", "name"],

                  var_name="Date",

                  value_name="Value")

 

df2 = df2.sort(["location", "name"])

ログイン後にコピー

確実に行うためにインデックスをリセットすることを忘れないでください。クリーンな出力:

1

df2.reset_index(drop=True)

ログイン後にコピー

この手法は、データフレームを再形成する便利な方法を提供し、表形式データの分析とプレゼンテーションを容易にします。

以上がPandas Melt() を使用して列を行に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート