如何用Pandas将列名为参数的宽表转换为长格式?
使用Pandas
melt() 实现宽表转长表 你的需求正好对应melt()函数的核心用法——把宽格式的数据集转换为长格式,而pivot_table是用来做长转宽或数据聚合的,不适合这个场景。
代码实现
直接对你的示例DataFrame调用melt,指定新列名即可:
import pandas as pd df = pd.DataFrame({'A': (1,2), 'B':(3,4)}) # 转换格式 melted_df = df.melt(var_name='Parameter', value_name='value') display(melted_df)
输出结果
运行后会得到你需要的表格:
Parameter value 0 A 1 1 A 2 2 B 3 3 B 4
关键参数解释
var_name:设置原来的列名要映射到的新列名称(也就是你的参数列Parameter)value_name:设置原来列中的数值要映射到的新列名称(也就是value)
如果你的数据集还有其他不需要转换的列,可以通过id_vars参数指定保留的列,不过你的示例里所有列都是参数列,所以直接调用就可以。
内容的提问来源于stack exchange,提问作者Pablo
相关产品推荐
相关产品推荐

