Python实现:按日期范围读取子文件夹指定CSV并合并
按日期区间合并指定CSV文件为单个DataFrame
针对你的需求,这里给出完善后的代码实现,解决子文件夹日期筛选和文件匹配的问题:
import pandas as pd from pathlib import Path # 配置参数:日期区间和主文件夹路径 start_date = '20230101' end_date = '20230227' main_dir = r"\Main-Folder-Path" # 使用原始字符串避免Windows路径转义问题 df_collection = [] # 遍历主文件夹下的所有子项,筛选符合日期范围的子文件夹 for sub_item in Path(main_dir).iterdir(): # 判断是否为文件夹,且名称在指定日期区间内 if sub_item.is_dir() and start_date <= sub_item.name <= end_date: # 在目标子文件夹中匹配所有符合格式的CSV文件 for target_csv in sub_item.glob("Some_File-*.csv"): # 读取CSV,可选添加来源日期列用于溯源 temp_df = pd.read_csv(target_csv) temp_df['source_folder_date'] = sub_item.name df_collection.append(temp_df) # 合并所有DataFrame为单个数据集,重置索引 final_df = pd.concat(df_collection, ignore_index=True)
关键说明:
- 日期筛选逻辑:由于子文件夹名称是
YYYYMMDD格式的字符串,直接用字符串比较就能实现日期区间判断,无需额外转换日期格式 - 路径处理:使用
pathlib.Path处理路径更简洁,避免手动拼接路径的错误;Windows路径建议用原始字符串(前缀r)防止转义字符干扰 - 数据溯源:添加
source_folder_date列可以标记每条数据来自哪个日期的子文件夹,后续排查数据问题更方便 - 索引重置:
concat时设置ignore_index=True,避免合并后出现重复的索引值
内容的提问来源于stack exchange,提问作者Marc225
相关产品推荐
相关产品推荐

