首頁 >後端開發 >Python教學 >Pandas'melt”函數如何使用附加群組和名稱列重塑資料框?

Pandas'melt”函數如何使用附加群組和名稱列重塑資料框?

DDD
DDD原創
2024-11-28 00:04:111019瀏覽

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

Pandas Melt 函數:重塑工具

問題

考慮一個 DataFrame df 和一個字典 d。您的目標是將 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)

最後,我們將「其他」值從「名稱」移到「群組」:

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

產生的 DataFrame m 將與所需的匹配輸出。

以上是Pandas'melt”函數如何使用附加群組和名稱列重塑資料框?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn