考慮一個 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中文網其他相關文章!