You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手求助:如何用关键词过滤CSV数据并输出

Python 过滤CSV数据实现方案

作为Python新手,你的思路完全靠谱!咱们直接把这个想法变成可运行的代码,一步步来:

第一步:准备关键词列表与依赖库

首先咱们先把你的关键词整理成规范的Python列表(注意你写的"MRE Consul..."我先原样保留啦,如果是输入不全可以之后补全),然后导入Python自带的csv模块——不用额外安装第三方库,对新手超友好:

import csv

# 整理后的目标关键词列表
target_keywords = [
    "AIG", "Baylor", "CGG", "Citi", "EcconMobil", 
    "Flow-Cal Inc.", "Global SHop Solutions", 
    "Harris Count CTS", "HCSS", "Hitachi Consulting", 
    "HP Inc.", "INT Inc.", "JPMorgan Chase & Co", 
    "Leidos", "McKesson", "MRE Consul..."
]

第二步:编写关键词判断函数

接下来写一个小函数,用来检查某一行数据是否包含目标关键词。这里分两种常用场景:

场景1:检查整行所有字段

只要该行任意一个字段包含关键词,就算符合筛选条件:

def has_target_keyword(row):
    # 转成小写是为了实现大小写不敏感匹配,不想区分大小写就去掉.lower()
    for item in row:
        if any(keyword.lower() in str(item).lower() for keyword in target_keywords):
            return True
    return False

场景2:检查指定字段(适合带表头的CSV)

如果你的CSV有明确表头(比如有"公司名称"列),可以只检查特定列,精准度更高:

def has_keyword_in_company(row, company_col_name):
    # 取出指定列的内容,同样支持大小写不敏感匹配
    company_content = str(row[company_col_name]).lower()
    return any(keyword.lower() in company_content for keyword in target_keywords)

第三步:读取CSV并过滤数据

现在咱们读取CSV文件,逐行筛选符合条件的内容,还可以把结果保存成新的CSV文件:

示例1:无表头的CSV文件

# 替换成你的CSV文件路径,和代码同文件夹直接写文件名即可
with open("your_raw_data.csv", "r", encoding="utf-8") as csv_file:
    reader = csv.reader(csv_file)
    # 列表推导式快速过滤符合条件的行
    filtered_rows = [row for row in reader if has_target_keyword(row)]

# 打印过滤结果
print("筛选出的数据:")
for row in filtered_rows:
    print(row)

# 把结果写入新的CSV文件
with open("filtered_result.csv", "w", newline="", encoding="utf-8") as output_file:
    writer = csv.writer(output_file)
    writer.writerows(filtered_rows)

示例2:带表头的CSV文件

如果你的CSV有表头(比如第一行是["ID", "公司名称", "地址"]),用DictReader会更直观:

with open("your_raw_data.csv", "r", encoding="utf-8") as csv_file:
    reader = csv.DictReader(csv_file)
    # 假设要检查的列名为"公司名称",替换成你实际的列名即可
    filtered_rows = [row for row in reader if has_keyword_in_company(row, "公司名称")]

# 打印结果
print("筛选出的数据:")
for row in filtered_rows:
    print(row)

# 写入新CSV(保留原表头)
with open("filtered_result.csv", "w", newline="", encoding="utf-8") as output_file:
    writer = csv.DictWriter(output_file, fieldnames=reader.fieldnames)
    writer.writeheader()
    writer.writerows(filtered_rows)

新手友好小提示

  • 如果想要严格区分大小写匹配,去掉代码里所有的.lower()就行
  • 如果你的CSV用的是分号、制表符这类分隔符,在csv.reader里加参数delimiter=";"(分号示例)即可
  • 注意文件路径别写错,要是CSV和代码不在同一个文件夹,记得写完整路径(比如C:/Users/xxx/Documents/your_data.csv)

内容的提问来源于stack exchange,提问作者PKPython

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:43:49