首页 > 解决方案 > 如何有效地连接由 for 循环生成的数千个 pandas 数据帧?

问题描述

在读取不同文件的 for 循环中生成了数千个 dfs 的一致列,我正在尝试将它们合并/连接/附加到单个 df 中,combined

combined = pd.DataFrame()

for i in range(1,1000): # demo only
    global combined
    generate_df() # df is created here
    combined = pd.concat([combined, df])

这最初很快,但随着combined增长而变慢,最终变得无法使用。这个关于如何附加行的答案解释了如何将行添加到 dict 然后创建 df 是最有效的,但我不知道如何使用to_dict.

有什么好的方法呢?我是以错误的方式接近这个吗?

标签: pythonpandasdataframeappend

解决方案


您可以创建 DataFrames 列表,然后concat只使用一次:

dfs = []

for i in range(1,1000): # demo only
    global combined
    generate_df() # df is created here
    dfs.append(df)

combined = pd.concat(dfs)

推荐阅读