如何使用Pandas将所有列值合并为一列,表头转为新列字段值?
将宽格式DataFrame转换为长格式
你可以使用pandas的melt()函数快速实现这个转换,这是处理宽表转长表的标准方法:
1. 构造原始DataFrame
首先还原你的初始数据:
import pandas as pd df = pd.DataFrame({ 'Test A': [22, 56, 73, 13], 'Test B': [45, 62, 68, 34], 'Test C': [24, 52, 11, 96] })
2. 执行转换
调用melt()函数,指定新列的名称:
result_df = df.melt(var_name='Test Name', value_name='Result')
参数说明:
var_name:设置存储原列名的新列名称,对应你要的"Test Name"value_name:设置存储原列值的新列名称,对应你要的"Result"
3. 转换后的结果
转换后的result_df就是你需要的格式,输出如下:
| Test Name | Result |
|---|---|
| Test A | 22 |
| Test A | 56 |
| Test A | 73 |
| Test A | 13 |
| Test B | 45 |
| Test B | 62 |
| Test B | 68 |
| Test B | 34 |
| Test C | 24 |
| Test C | 52 |
| Test C | 11 |
| Test C | 96 |
内容的提问来源于stack exchange,提问作者Rextein
相关产品推荐
相关产品推荐

