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

Pandas如何使用for循环合并多个DataFrame?

方案1:从读文件阶段就一步到位(最简洁,无需额外生成字典、单独变量)

直接用列表存储读取到的每一年DataFrame,最后一次性拼接:

import pandas as pd

file_dir = '../VentureXpert/Raw/county_csv/'
df_list = []
for year in range(1996,2020):
    df = pd.read_csv(file_dir + f"{year}.csv", header=None)
    df.columns =['st-county' ,'numb of comp','pct of comp','inv sum($mil)','pct of inv','avg per comp','med per comp','year']
    df_list.append(df)

df_final = pd.concat(df_list, ignore_index=True)

你原有代码里的copy.deepcopy完全不需要,pd.read_csv返回的已经是独立的DataFrame对象,多余的深拷贝反而会增加不必要的内存开销。


方案2:如果已经生成了dict_of_df不想修改前面的代码

直接取字典的所有值传入concat即可,不需要手动提取每个变量,也不需要额外循环:

df_final = pd.concat(dict_of_df.values(), ignore_index=True)

Python 3.7及以上版本默认会保留字典的插入顺序,你生成字典时是按年份从小到大插入的,所以直接取values的拼接顺序和你手动写的顺序完全一致,不会出现顺序错乱问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:27:03