如何用pandas合并名称以Milan结尾的多个.csv文件?
用Pandas合并指定CSV文件的实现方法
实现步骤
1. 导入所需库
需要用到pandas处理数据,os遍历文件夹内文件:
import pandas as pd import os
2. 筛选目标CSV文件
遍历当前文件夹,精准筛选出文件名以Milan.csv结尾的文件:
# 获取当前文件夹路径 current_dir = os.getcwd() # 筛选符合条件的文件 target_files = [f for f in os.listdir(current_dir) if f.endswith('Milan.csv')]
执行后target_files会自动包含file1Milan.csv、file2Milan.csv、file3Milan.csv这三个目标文件。
3. 上下拼接合并数据
有两种高效实现方式:
方式一:循环读取追加
初始化空DataFrame,逐个读取文件并拼接:
merged_df = pd.DataFrame() for file in target_files: df = pd.read_csv(file) merged_df = pd.concat([merged_df, df], ignore_index=True)
ignore_index=True用于重置合并后数据的索引,避免出现重复索引问题。
方式二:批量读取后一次性拼接
先将所有目标文件读取为DataFrame列表,再统一拼接:
df_list = [pd.read_csv(file) for file in target_files] merged_df = pd.concat(df_list, ignore_index=True)
这种方式代码更简洁,执行效率也更高。
4. 保存合并结果(可选)
如果需要将合并后的数据导出为新CSV文件:
merged_df.to_csv('merged_Milan_files.csv', index=False)
index=False表示不将索引导出到文件中,避免生成多余列。
注意事项
- 确保所有目标CSV文件的列结构一致,否则合并后可能出现列错位或缺失;若列结构不同,可添加
join='outer'参数保留所有列,但会产生空值。 - 如果目标文件不在当前工作目录,需将
current_dir修改为对应文件夹的绝对路径。
内容的提问来源于stack exchange,提问作者Giampaolo Levorato
相关产品推荐
相关产品推荐

