Pandas'melt”函数如何使用附加组和名称列重塑数据框?

DDD
发布: 2024-11-28 00:04:11
原创
991 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板