如何在Pandas中将多列数据与指定列值配对转换为长表?
Pandas实现列值配对(宽表转长表)
你要的是把Column 1和后续所有列的每个值一一配对,本质是宽表转长表,用Pandas的melt()函数就能直接实现,具体操作如下:
1. 准备示例数据
先把你给出的表格转换成Pandas DataFrame:
import pandas as pd # 构造和你示例一致的DataFrame df = pd.DataFrame({ 'Column 1': ['a', 'b', 'c'], 'Column 2': [1, 1, 2], 'Column 3': [2, 3, 1] })
2. 用melt函数转换格式
直接调用melt(),参数设置好就能得到你要的结果:
# 自动获取Column1之后的所有列,无需手动列出来 result = df.melt( id_vars='Column 1', # 保留作为配对标识的列 value_vars=df.columns[1:], # 需要拆分成行的目标列(从第二列开始的所有列) var_name=None, # 不需要保留原列名,设为None value_name='Column 2', # 把拆分后的值列命名为你要的Column2 ignore_index=True # 重置索引从0开始 )
3. 查看结果
打印result就能得到你想要的格式:
Column 1 Column 2 0 a 1 1 b 1 2 c 2 3 a 2 4 b 3 5 c 1
(注:如果你的原始表有更多后续列,df.columns[1:]会自动包含所有列,无需修改代码)
内容的提问来源于stack exchange,提问作者nama asliku
相关产品推荐
相关产品推荐

