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

pandas DataFrame两列按指定交替顺序合并的最优实现方法

最快实现方案

针对10万行以上的大数据量场景,最优方案是直接调用numpy的向量化展平操作,全程无循环,仅需一行代码即可完成,性能比循环类实现高2个数量级以上。

核心思路

pandas底层基于numpy数组存储数据,将需要交替合并的两列拼接为二维数组后,按**列优先顺序(Fortran顺序)**展平,天然就能得到逐行交错排列的结果,该操作是内存层面的批量处理,几乎没有额外开销。

实现代码

import pandas as pd
import numpy as np

# 测试用例,构造10万行的示例DataFrame
df = pd.DataFrame({
    "Zeroes": np.zeros(100000, dtype=int),
    "Ones": np.ones(100000, dtype=int)
})

# 核心实现:选需要交替的列,转numpy数组后按列优先展平
interleaved_result = df[["Zeroes", "Ones"]].values.ravel(order="F")

效果验证

对于3行的示例输入:

ZeroesOnes
01
01
01

上述代码输出结果为 [0 1 0 1 0 1],完全符合需求。

扩展说明

  • 如果需要输出为pandas Series格式,直接用 pd.Series(interleaved_result) 转换即可
  • 该方案支持多列交替合并:只需要将需要交替的列按顺序传入列表即可,比如3列交替就传入[col1, col2, col3],展平后会自动按col1[0], col2[0], col3[0], col1[1], col2[1], col3[1]的顺序排列
  • 如果两列长度不一致,会自动按短列长度截断,多余元素丢弃;如果需要保留所有元素,可以先对短列补空值后再执行操作,最后过滤空值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:54:05