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

如何在Pandas中将两对列拼接为行交替的两列?

Pandas实现DataFrame列组交替行拼接

问题描述

现有如下DataFrame,需要将第1、2列与第3、4列进行拼接,使结果呈现行交替的形式:

import pandas as pd
df = pd.DataFrame({'1': ['A1', 'A2', 'A3', 'A4'], '2': [5, 10, 15, 15],
             '3': ['B1', 'B2', 'B3', 'B4'], '4': [3, 1, 5, 9]})

原数据:

1   2   3  4
0  A1   5  B1  3
1  A2  10  B2  1
2  A3  15  B3  5
3  A4  15  B4  9

期望结果:

col1  col2
A1     5
B1     3
A2    10
B2     1
A3    15
B3     5
A4    15
B4     9

解决方案

可以通过拆分列组、统一列名后按索引排序实现交替行效果:

# 拆分出两组目标列
df_group1 = df[['1', '2']]
df_group2 = df[['3', '4']]

# 统一两组的列名,避免合并后列结构混乱
df_group2.columns = df_group1.columns

# 拼接两组数据并按原索引排序,实现"A组行→B组行"的交替效果
result = pd.concat([df_group1, df_group2]).sort_index(kind='mergesort')

# 可选:重命名列名让结果更直观
result.columns = ['col1', 'col2']

print(result)

代码说明

  1. 拆分列组:分别提取第1-2列和第3-4列作为独立的DataFrame
  2. 统一列名:确保两组数据列名一致,保证合并后列结构统一
  3. 拼接并排序索引:pd.concat保留原索引,排序后同一索引的行相邻,自然形成交替行结构
  4. 重命名列:可选操作,让结果列名更清晰易懂

运行后即可得到符合期望的交替行结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:40:34