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

Pandas多矩阵循环拼接的更优实现方法

Pandas 多混合类型矩阵拼接优化方案(无需哑变量)

原有写法问题说明

你之前尝试的列表收集方案本身思路是对的,没有得到合并后的单一矩阵,是因为漏了最后一步统一拼接的操作——仅把DataFrame存入列表不会自动合并,自然得到的是独立矩阵的集合。
另外你最初用计数哑变量的循环拼接写法,除了冗余变量的问题,还有性能缺陷:每次循环执行pd.concat都会反复复制已加载的全量数据,矩阵规模大、文件数量多的时候运行效率会明显降低。


最优实现方案(推荐,性能最高)

用列表收集所有读入的矩阵,最后一次性完成拼接,不需要任何计数哑变量,同时性能远高于逐次循环拼接:

import pandas as pd

matrix_container = []
for file_name in list_of_matrices:
    # 读入单文件矩阵,混合数值、字符串类型不会影响拼接逻辑
    single_mat = pd.read_csv(file_name)
    matrix_container.append(single_mat)

# 核心:一次性拼接列表内所有矩阵,得到单一合并结果
matrix_final = pd.concat(matrix_container, ignore_index=True)

参数说明

  • ignore_index=True:重置拼接后的行索引,避免多个矩阵的原行索引重复
  • 如果需要标记每行数据来自哪个原文件,可以追加参数keys=list_of_matrices, names=["source_file", "origin_idx"],给数据带来源标签

极简写法(无需显式定义循环)

如果追求代码更简洁,可以直接用生成器表达式作为pd.concat的输入,连中间列表都可以省略:

matrix_final = pd.concat(
    (pd.read_csv(name) for name in list_of_matrices),
    ignore_index=True
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 22:27:27