首页 > 后端开发 > Python教程 > 如何使用'melt()”函数融化和操作 Pandas DataFrame?

如何使用'melt()”函数融化和操作 Pandas DataFrame?

Susan Sarandon
发布: 2024-12-17 07:14:24
原创
603 人浏览过

How Do I Melt and Manipulate Pandas DataFrames Using the `melt()` Function?

如何融合 pandas 数据框?

融合 pandas 数据框涉及将其从具有多列的宽格式转换为长格式有两个主列:“变量”和“值”。这可以使用 Melt() 函数来实现。

问题 1:融合数据帧以将列转置为行

df = df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades')
登录后复制

这会将原始数据帧转换为所需的格式,其中包含“姓名”、“年龄”、“科目”和“成绩”列。 “主题”列将包含原始列标题,而“成绩”将包含相应的值。

问题 2:过滤融合数据以包含特定列

df = df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades')
filtered_df = df[df['Subject'] == 'Math']
登录后复制

通过过滤融化的数据框,您可以删除不需要的列。在这种情况下,仅保留“Subject”设置为“Math”的行。

问题 3:对融合数据进行分组并按分数排序

df = df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades')
sorted_df = df.groupby('value').agg({'Name': ', '.join, 'Subject': ', '.join})
sorted_df = sorted_df.sort_values('value')
登录后复制

这会合并“值”列中具有重复值的行,从而导致“名称”和“主题”列与逗号分隔值。然后对结果进行排序,以按等级升序排列。

问题 4:解熔熔化的数据帧

unmelted_df = df.pivot(index=['Name', 'Age'], columns='Subject', values='Grades')
登录后复制

要将熔化的数据帧转换回其原始格式,您可以使用pivot()函数。这将按“姓名”和“年龄”列对数据进行分组,并旋转“主题”列以创建原始数据框形状。

问题 5:对融合数据进行分组并连接科目和成绩

df = df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades')
grouped_df = df.groupby('Name').agg({'Subject': ', '.join, 'Grades': ', '.join})
登录后复制

与问题 3 类似,这按“名称”对熔化的数据框进行分组并使用逗号连接“主题”和“成绩”列。结果是一个数据框,每人一行,列出了他们的科目和成绩。

问题 6:融合所有列作为值的数据框

df = df.melt(value_name='Value', var_name='Column')
登录后复制

到将所有列作为值融化数据帧,并从 Melt() 函数中省略 id_vars 参数。这将创建一个数据框,其中“列”列列出原始列标题,“值”列包含相应的值。

以上是如何使用'melt()”函数融化和操作 Pandas DataFrame?的详细内容。更多信息请关注PHP中文网其他相关文章!

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