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

将相同大小的DataFrame合并为单个DataFrame

解决方法:合并同结构DataFrame为单元格含列表的新DataFrame

嘿,这个需求用pandas其实有很简便的实现方式,我来给你一步步拆解!

步骤1:导入库并准备示例数据

首先我们先模拟你提到的多个结构、大小一致的DataFrame:

import pandas as pd

# 模拟两个测试用的DataFrame
df1 = pd.DataFrame({
    'col1': [1, 1, 1],
    'col2': [2, 2, 2],
    'col3': [3, 3, 3]
})

df2 = pd.DataFrame({
    'col1': [1, 1, 1],
    'col2': [2, 2, 2],
    'col3': [3, 3, 3]
})

步骤2:通用合并方法(支持任意数量的DataFrame)

不管你有2个还是10个同结构的DataFrame,都可以用这个通用方法:

  1. 把所有DataFrame放到一个列表中
  2. 用pd.concat堆叠所有DataFrame
  3. 按原始行索引分组,将每组的元素聚合为列表

代码实现:

# 将所有需要合并的DataFrame存入列表
dfs = [df1, df2]

# 执行合并操作
merged_df = pd.concat(dfs, axis=0).groupby(level=0).agg(list)

执行完后,merged_df的输出就是你想要的格式:

col1      col2      col3
0  [1, 1]  [2, 2]  [3, 3]
1  [1, 1]  [2, 2]  [3, 3]
2  [1, 1]  [2, 2]  [3, 3]

补充说明

  • 确保所有要合并的DataFrame列名完全一致、行数完全相同,否则分组聚合会出现异常
  • 如果你的DataFrame数量很少(比如只有2个),也可以用更简洁的逐列处理方式:
merged_df = df1.apply(lambda col: col.combine(df2[col.name], lambda x, y: [x, y]))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 14:39:04