如何使用Pandas批量读取多个.csv.gz文件并实现追加操作
用Pandas批量读取并追加csv.gz文件
当然可以实现。因为所有文件结构完全一致,我们可以通过Pandas结合Python的文件遍历工具,轻松批量读取这些csv.gz文件并纵向追加(拼接)成一个完整的DataFrame。
具体实现步骤:
- 导入所需依赖库
import pandas as pd import glob import os
- 获取目标目录下所有csv.gz文件的完整路径
# 匹配myDir目录下所有.csv.gz格式的文件 file_paths = glob.glob(os.path.join("myDir", "*.csv.gz"))
- 批量读取并拼接文件
直接一次性读取所有文件后拼接(适合内存足够的场景):
# 逐个读取文件并存入DataFrame列表 df_list = [pd.read_csv(file, compression='gzip') for file in file_paths] # 纵向拼接所有DataFrame,ignore_index重置索引 combined_df = pd.concat(df_list, ignore_index=True)
如果文件数量过多(如3000+),担心内存压力,可以分批次读取拼接:
combined_df = pd.DataFrame() # 每批次处理100个文件,可根据内存情况调整 chunk_size = 100 for i in range(0, len(file_paths), chunk_size): # 截取当前批次的文件路径 chunk_files = file_paths[i:i+chunk_size] # 读取当前批次的所有文件 chunk_dfs = [pd.read_csv(file, compression='gzip') for file in chunk_files] # 拼接当前批次并合并到总DataFrame combined_df = pd.concat([combined_df, pd.concat(chunk_dfs, ignore_index=True)], ignore_index=True)
内容的提问来源于stack exchange,提问作者Giampaolo Levorato
相关产品推荐
相关产品推荐

