ホームページ >バックエンド開発 >Python チュートリアル >Pandas の「melt」関数は、グループ列と名前列を追加してデータフレームをどのように再形成できるのでしょうか?

Pandas の「melt」関数は、グループ列と名前列を追加してデータフレームをどのように再形成できるのでしょうか?

DDD
DDDオリジナル
2024-11-28 00:04:111073ブラウズ

How Can Pandas' `melt` Function Reshape a DataFrame with Additional Group and Name Columns?

Pandas Melt 関数: 再形成ツール

問題

DataFrame df と辞書を考えます。 df を、グループと名前という列を追加したテーブルに再形成することを目的としています。目的の出力は次のようになります。

    Group   Name  Year  Value
 0      A    Amy  2013      2
 1      A    Amy  2014      9
 2      B    Bob  2013      4
 3      B    Bob  2014      2
 4      B    Ben  2013      1
 5      B    Ben  2014      5
 6      C   Carl  2013      7
 7      C   Carl  2014      4
 8      C  Chris  2013      8
 9      C  Chris  2014      5
10  Other         2013      3
11  Other         2014      6

ソリューション

この再形成を実現するには、Pandas のメルト関数を利用します。

m = pd.melt(df, id_vars=['Year'], var_name='Name')

これにより、メルトされた DataFrame が作成されます。 m には、年、名前、および値の列が入ります。 Group 列を追加するには、d を次のように再形成します。

d2 = {}
for k, v in d.items():
  for item in v:
    d2[item] = k

次に、d2 を m['Name'] にマップして、Group 列を設定します。

m['Group'] = m['Name'].map(d2)

最後に、次のようにします。 「その他」の値を Name から Group に移動します:

mask = m['Name'] == 'Other'
m.loc[mask, 'Name'] = ''
m.loc[mask, 'Group'] = 'Other'

結果の DataFrame m は、目的のデータフレーム m と一致します。出力。

以上がPandas の「melt」関数は、グループ列と名前列を追加してデータフレームをどのように再形成できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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