如何自动化合并列表中每6个DataFrame?
自动化批量合并DataFrame的方案
你可以通过分组处理+批量合并的方式把整个流程自动化,无需手动切片和重复编写合并代码。具体实现步骤如下:
按每6个DataFrame为一组拆分原列表
用列表推导式自动将bigList分割成若干个最多包含6个元素的子列表,即使最后一组不足6个也能正常处理。批量合并每组内的DataFrame
复用你原本的reduce+merge逻辑,封装成函数后批量处理每个分组。拼接所有合并后的结果
最后把各组合并好的DataFrame一次性拼接起来。
完整代码示例:
from functools import reduce import pandas as pd # 注意你原代码里的拼写错误:paandas → pandas # 1. 按每6个一组拆分原列表 groups = [bigList[i:i+6] for i in range(0, len(bigList), 6)] # 2. 定义每组的合并函数,批量处理所有分组 def merge_single_group(group): # 若分组为空直接返回空DataFrame,避免报错 if not group: return pd.DataFrame() return reduce(lambda df1, df2: pd.merge(df1, df2, on='index', how='outer'), group) merged_dfs = [merge_single_group(g) for g in groups] # 3. 拼接所有合并后的结果 full_df = pd.concat(merged_dfs, ignore_index=False) # 如需重置索引可添加ignore_index=True
补充说明:
- 拆分列表的
range(0, len(bigList), 6)会自动生成起始索引0、6、12...,确保每组是连续的6个元素。 - 合并函数里增加了空分组判断,避免原列表为空或最后一组为空时报错。
- 如果你的
index是DataFrame的索引而非列名,需要把on='index'改成left_index=True, right_index=True,适配索引合并的场景。
内容的提问来源于stack exchange,提问作者Beck
相关产品推荐
相关产品推荐

