考虑一个 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中文网其他相关文章!