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

Python中按列表索引拼接DataFrame列表的方法求助

解决方案

你可以通过转置嵌套列表再逐组拼接的方式实现需求,具体操作如下:

  1. 利用zip(*df_list)将原3×5的嵌套列表转置为5×3的结构,让每一组对应需要拼接的同索引DataFrame集合
  2. 对转置后的每一组数据使用pd.concat()进行纵向拼接
  3. 将拼接结果转为列表即可得到目标结构

代码示例

import pandas as pd

# 模拟原3×5嵌套DataFrame列表
df_list = [
    [pd.DataFrame({'col': [1,2]}), pd.DataFrame({'col': [3,4]}), pd.DataFrame({'col': [5,6]}), pd.DataFrame({'col': [7,8]}), pd.DataFrame({'col': [9,10]})],
    [pd.DataFrame({'col': [11,12]}), pd.DataFrame({'col': [13,14]}), pd.DataFrame({'col': [15,16]}), pd.DataFrame({'col': [17,18]}), pd.DataFrame({'col': [19,20]})],
    [pd.DataFrame({'col': [21,22]}), pd.DataFrame({'col': [23,24]}), pd.DataFrame({'col': [25,26]}), pd.DataFrame({'col': [27,28]}), pd.DataFrame({'col': [29,30]})]
]

# 执行拼接操作
dfs = [pd.concat(group) for group in zip(*df_list)]

# 验证结果(可选)
print(dfs[0])  # 输出df1、df11、df21的拼接结果

关键说明

  • zip(*df_list)是核心操作:它会将原列表的每一列元素打包成元组,比如第一个元组是(df1, df11, df21),第二个是(df2, df12, df22),以此完成行列转置
  • 列表推导式遍历每个元组,通过pd.concat()完成纵向拼接,最终生成目标列表dfs

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:32:39