如何对文件夹中所有CSV文件应用清洗脚本?读取文件名报错求助
问题排查与修正:批量CSV文件数据清洗脚本报错
核心问题分析
- 文件路径缺失:你提取的
file_name仅为文件名(不含完整路径),而pd.read_csv默认从当前工作目录读取文件,并非目标文件夹/Desktop/raw_data,所以即使文件存在,脚本也找不到对应路径。 - 未保存清洗后的数据:代码中生成
cleaned清洗数据集后,仍用原df对象保存,等于没有应用清洗操作。
修正后的完整脚本
import os import pandas as pd import glob # 确保genes列表已正确定义,示例: # genes = ["geneA", "geneB", "geneC"] path = r'/Desktop/raw_data' all_files = glob.glob(os.path.join(path, "*.csv")) # 获取所有CSV文件的完整路径 for file in all_files: # 直接使用完整路径读取文件 df = pd.read_csv(file) # 执行数据清洗 cleaned = df[df['gene_name'].isin(genes)] # 覆盖原文件保存清洗结果,若要保留原文件可改为新文件名,比如: # new_file = os.path.splitext(file)[0] + "_cleaned.csv" cleaned.to_csv(file, index=False)
关键修改说明
- 保留完整文件路径:直接遍历
all_files中的完整路径file,无需提取文件名,避免路径丢失问题。 - 保存清洗后的数据:使用
cleaned.to_csv替代原df.to_csv,确保清洗结果被保存。 - 可选:保留原文件:如果不想覆盖原CSV文件,可将保存路径改为带
_cleaned后缀的新文件,避免数据丢失。
内容的提问来源于stack exchange,提问作者Adriana
相关产品推荐
相关产品推荐

