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

如何在pandas中按行交错合并两个列名一致的dataframe

Pandas两个DataFrame按行交错拼接实现方法

以下两种实现均基于两表列名完全一致的前提:

方法1:索引排序法(通用,支持行数不一致场景)

该方案兼容性最强,若两表行数不同,行数更多的表多出的行将自动追加到结果末尾:

import pandas as pd

# 示例数据构造
df1 = pd.DataFrame({'col1': [1,3,5], 'col2': ['a','c','e']})
df2 = pd.DataFrame({'col1': [2,4,6], 'col2': ['b','d','f']})

# 分别给两表设置奇偶间隔的索引
df1_with_idx = df1.set_index(pd.RangeIndex(0, 2*len(df1), 2))
df2_with_idx = df2.set_index(pd.RangeIndex(1, 2*len(df2), 2))

# 拼接后按索引排序,重置索引得到最终结果
df3 = pd.concat([df1_with_idx, df2_with_idx]).sort_index().reset_index(drop=True)

方法2:Numpy矩阵重排法(高效,仅支持行数完全一致场景)

如果确认两个DataFrame行数完全相同,用该方法运算效率更高:

import pandas as pd
import numpy as np

df1 = pd.DataFrame({'col1': [1,3,5], 'col2': ['a','c','e']})
df2 = pd.DataFrame({'col1': [2,4,6], 'col2': ['b','d','f']})

# 垂直堆叠后按列优先重排,转换为DataFrame
df3 = pd.DataFrame(
    np.vstack([df1.values, df2.values]).reshape(-1, df1.shape[1], order='F'),
    columns=df1.columns
)

两种方法最终得到的df3均符合要求的交错排列规则:第1行来自df1第1行、第2行来自df2第1行,以此类推。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:36:02