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

合并pandas DataFrame生成元素为列表的新DataFrame实现问题

你原有写法报错是因为combine方法传入的参数是整列的Series对象,对两个Series执行append会得到长度为原有2倍的新Series,和原列长度不匹配,索引对齐时就会触发重复轴的报错。

以下是两种无循环的实现方案:

方案1:配合numpy.stack实现(最优,大数据量下效率最高)

import numpy as np
import pandas as pd

# df1、df2为你原有的两个DataFrame
df3 = pd.DataFrame(
    np.stack([df1, df2], axis=-1).tolist(),
    index=df1.index,
    columns=df1.columns
)

np.stack([df1, df2], axis=-1)会把两个DataFrame对应位置的元素打包为长度为2的数组,再转成列表赋值给新DataFrame即可,完全没有循环开销。

方案2:纯pandas内置方法实现

如果你不想引入numpy依赖,也可以用pandas自带的方法实现:

df3 = df1.combine(df2, lambda s1, s2: list(zip(s1, s2))).applymap(list)

这里的lambda会对两个同名列的Series按位置打包为元组,再通过applymap把每个元组转为列表即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:33:01