You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pandas将多列合并为单列并复制其他列?

问题描述

有一个包含x1-x5和y1-y5列的Pandas DataFrame,需要将y1-y5合并为单列y,同时对应复制每一行的x1-x5数据,示例输入和期望输出如下:

示例输入DataFrame

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(10, size=60).reshape(6, 10))
df.columns = ['x1', 'x2', 'x3', 'x4', 'x5', 'y1', 'y2', 'y3', 'y4', 'y5']

初始DataFrame展示:

x1  x2  x3  x4  x5  y1  y2  y3  y4  y5
0   2   6   9   4   3   8   6   1   0   7
1   1   4   8   7   3   0   5   7   3   1
2   6   7   4   8   1   5   7   7   8   5
3   6   3   4   8   0   8   7   2   3   8
4   8   5   6   1   6   3   2   1   1   4
5   1   3   7   5   1   6   5   3   8   5

期望输出DataFrame

x1  x2  x3  x4  x5  y
0    2   6   9   4   3  8
1    1   4   8   7   3  0
2    6   7   4   8   1  5
3    6   3   4   8   0  8
4    8   5   6   1   6  3
5    1   3   7   5   1  6
6    2   6   9   4   3  6
7    1   4   8   7   3  5
8    6   7   4   8   1  7
9    6   3   4   8   0  7
10   8   5   6   1   6  2
11   1   3   7   5   1  5
12   2   6   9   4   3  1
13   1   4   8   7   3  7
14   6   7   4   8   1  7
15   6   3   4   8   0  2
16   8   5   6   1   6  1
17   1   3   7   5   1  3
18   2   6   9   4   3  0
19   1   4   8   7   3  3
20   6   7   4   8   1  8
21   6   3   4   8   0  3
22   8   5   6   1   6  1
23   1   3   7   5   1  8
24   2   6   9   4   3  7
25   1   4   8   7   3  1
26   6   7   4   8   1  5
27   6   3   4   8   0  8
28   8   5   6   1   6  4
29   1   3   7   5   1  5
解决方案

直接用Pandas内置的melt函数即可实现,不需要复杂逻辑。melt是专门用于宽表转长表的工具,参数说明:

  • id_vars:指定保持不变的列(即x1-x5)
  • value_vars:指定需要合并的列(即y1-y5)
  • value_name:指定合并后的目标列名,这里设为y

代码实现:

# 执行宽表转长表操作
result = df.melt(id_vars=['x1', 'x2', 'x3', 'x4', 'x5'], 
                 value_vars=['y1', 'y2', 'y3', 'y4', 'y5'],
                 value_name='y')

# 可选:如果需要和示例输出的行顺序完全一致,执行排序并重置索引
result = result.sort_values(by=['x1', 'x2', 'x3', 'x4', 'x5']).reset_index(drop=True)

执行后得到的result就是符合需求的长表结构,与期望输出完全匹配。


内容的提问来源于stack exchange,提问作者PJF49

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 22:24:31