如何批量搜索多个CSV文件提取指定值并汇总生成新CSV文件?
多CSV文件指定水果记录筛选汇总实现
现有代码问题说明
- 匹配字符大小写不一致:筛选条件写的是
"Apple",而示例CSV里水果名是小写"apple",会导致匹配漏项 - 循环内反复覆盖输出文件:每次读取单个CSV后直接写入结果文件,最终仅会保留最后一个CSV的筛选结果,无法实现多文件汇总
- 导出保留多余索引列:
index=True参数会在导出的CSV里新增索引序号列,和期望的输出格式不符
修正后可直接运行的代码
import pandas as pd import glob # 基础配置 csv_folder = "E:/Data/Fdata" target_name = "apple" output_file = "E:/Data/Fdata/onlyapple.csv" # 遍历所有CSV筛选目标记录 all_csv_files = glob.glob(f"{csv_folder}/*.csv") filtered_data = [] for file in all_csv_files: df = pd.read_csv(file, header=0) # 去空格+大小写不敏感匹配,避免格式问题漏筛 match_df = df[df["Name"].str.strip().str.lower() == target_name.lower()] filtered_data.append(match_df) # 合并所有结果并导出 final_df = pd.concat(filtered_data, ignore_index=True) final_df.to_csv(output_file, index=False, encoding="utf-8-sig")
运行上述代码后,生成的onlyapple.csv就和你期望的new.csv结构、内容完全一致。
内容的提问来源于stack exchange,提问作者Sabir
相关产品推荐
相关产品推荐

