如何按列生成新行重写Pandas DataFrame?
Pandas DataFrame 宽表转长表并合并标识列
原DataFrame构造代码
import pandas as pd df = pd.DataFrame({ 'Name': ['A', 'B'], 'Col 1': [1, 3], 'Col 2': [2, 4] })
转换步骤及代码
使用Pandas的melt方法将宽表转为长表,再合并标识列得到目标结构:
# 转长表,指定Name为保留的标识列 melted_df = df.melt(id_vars='Name', var_name='Col', value_name='Val') # 合并Name列与原列名(去除列名中的空格),生成新的Name列 melted_df['Name'] = melted_df['Name'] + '-' + melted_df['Col'].str.replace(' ', '') # 清理多余列并调整列顺序 result_df = melted_df[['Name', 'Val']]
转换结果
执行后得到的DataFrame如下:
| Name | Val |
|---|---|
| A-Col1 | 1 |
| B-Col1 | 3 |
| A-Col2 | 2 |
| B-Col2 | 4 |
内容的提问来源于stack exchange,提问作者DHutch00
相关产品推荐
相关产品推荐

