Pandas按指定列分组后将其余列转换为键值对格式的实现问题
Pandas 宽表转长表实现代码
你要实现的是典型的宽表转长表操作,直接使用Pandas内置的melt方法即可完成,以下是完整可运行的示例:
首先构造和你原始结构一致的模拟数据,实际使用时替换为你自己的数据源即可:
import pandas as pd df = pd.DataFrame({ '学生姓名': ['张三', '李四', '王五', '赵六'], '语文': [89, 76, 92, 81], '数学': [94, 88, 79, 90], '英语': [85, 93, 87, 78] })
执行转换的核心代码:
res = df.melt( id_vars=['学生姓名'], # 填入不需要展开、要保留的固定列,多列直接放进列表即可 var_name='科目', # 原来的表头字段转换后对应的新列名称 value_name='分数' # 原来的单元格值转换后对应的新列名称 )
内容的提问来源于stack exchange,提问作者FU USF
相关产品推荐
相关产品推荐

