如何用for循环从多份CSV文件提取指定关键词行并生成新文件
批量筛选CSV文件并生成新文件(基于Python)
完全可以用for循环实现,下面是具体的代码和步骤,新手也能跟着操作:
准备工作
如果还没安装pandas库,打开命令行输入以下命令安装:pip install pandas
完整代码
import pandas as pd import glob # 获取当前目录下所有CSV文件的路径 csv_files = glob.glob("*.csv") # 遍历每个CSV文件 for file in csv_files: # 读取CSV文件为表格格式 df = pd.read_csv(file) # 筛选"tissue type"列包含"liver"或"lung"的行(忽略大小写,可根据需求去掉case=False) filtered_df = df[df["tissue type"].str.contains("liver|lung", case=False, na=False)] # 生成新文件名,避免覆盖原文件 new_file_name = f"filtered_{file}" # 保存筛选后的内容为新CSV,不保留自动索引 filtered_df.to_csv(new_file_name, index=False)
代码细节说明
glob.glob("*.csv"):抓取当前文件夹内所有后缀为.csv的文件路径;如果CSV文件在其他文件夹,把"*.csv"改成对应路径,比如"your_folder/*.csv"df["tissue type"].str.contains(...):精准匹配列名为"tissue type"的内容,liver|lung表示匹配任意一个关键词,case=False兼容大小写差异(比如匹配Liver或LUNG),na=False跳过空值行f"filtered_{file}":给新文件加前缀标识,你也可以改成f"{file.split('.')[0]}_filtered.csv"这种后缀标识的格式- 确保所有CSV的列名确实是
"tissue type"(大小写、空格完全一致),如果列名有差异,要对应修改代码里的列名字符串
内容的提问来源于stack exchange,提问作者Daisy
相关产品推荐
相关产品推荐

