Python处理CSV文件时如何筛选AREA字段值为AREA DE F2的数据
Python筛选CSV指定字段值的实现方案
方法1:使用标准库csv模块(无需额外安装依赖)
直接用Python自带的csv模块即可完成筛选,无需安装第三方库,适合小体量CSV文件处理:
import csv # 按需修改下方三个参数 input_path = "待处理的原文件路径.csv" output_path = "筛选结果输出路径.csv" target_value = "AREA DE F2" with open(input_path, 'r', newline='', encoding='utf-8') as infile, \ open(output_path, 'w', newline='', encoding='utf-8') as outfile: # 按字典格式读取CSV,自动识别表头 reader = csv.DictReader(infile) writer = csv.DictWriter(outfile, fieldnames=reader.fieldnames) # 写入原表头 writer.writeheader() # 逐行判断筛选 for row in reader: # strip()用于去除字段值前后的隐形空格,不需要可以删掉 if row["AREA"].strip() == target_value: writer.writerow(row)
方法2:使用pandas库(适合大数据量、后续有数据处理需求)
如果需要处理大文件或者后续还要做其他数据运算,推荐用pandas实现,代码更简洁:
- 先安装pandas依赖:
pip install pandas - 执行筛选代码:
import pandas as pd # 读取CSV文件 df = pd.read_csv("待处理的原文件路径.csv") # 筛选符合条件的行 filtered_df = df[df["AREA"].str.strip() == "AREA DE F2"] # 导出结果到新CSV,index=False表示不导出pandas自动生成的行号 filtered_df.to_csv("筛选结果输出路径.csv", index=False)
常见问题排查
- 若提示
KeyError: 'AREA',说明CSV表头里的字段名和代码里的AREA不匹配,可先打印表头确认是否有多余空格、大小写差异 - 若出现乱码,可在
open或read_csv方法里添加encoding='gbk'参数适配中文编码的CSV文件
内容的提问来源于stack exchange,提问作者Jesse Boels
相关产品推荐
相关产品推荐

