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

Python实现两个CSV文件交叉引用并移除黑名单店铺

解决CSV主列表过滤黑名单店铺的Python方案

嘿,折腾两天没搞定确实闹心,我给你整理了两种靠谱的Python实现方案,你可以根据自己的需求选:

方法一:使用Python标准库csv(无需额外安装依赖)

这个方法适合不想装第三方库的场景,用Python自带的csv模块就能轻松搞定:

import csv

# 1. 读取黑名单店铺,存入集合(集合查找速度远快于列表,效率更高)
blacklist = set()
with open('黑名单店铺列表.csv', 'r', encoding='utf-8') as black_file:
    reader = csv.DictReader(black_file)
    for row in reader:
        # 假设黑名单里的店铺名列是"店铺名称",如果不是请修改这里
        blacklist.add(row['店铺名称'].strip())  # strip()去除前后空格,避免匹配误差

# 2. 读取主店铺列表,过滤掉黑名单中的店铺
filtered_rows = []
with open('店铺名称列表.csv', 'r', encoding='utf-8') as main_file:
    reader = csv.DictReader(main_file)
    # 先保留表头
    filtered_rows.append(reader.fieldnames)
    for row in reader:
        shop_name = row['店铺名称'].strip()
        if shop_name not in blacklist:
            filtered_rows.append(row)

# 3. 将过滤后的结果写入新文件(建议不要直接覆盖原文件,先备份)
with open('过滤后店铺列表.csv', 'w', encoding='utf-8', newline='') as output_file:
    writer = csv.DictWriter(output_file, fieldnames=filtered_rows[0])
    writer.writeheader()
    writer.writerows(filtered_rows[1:])

print("过滤完成!结果已保存到'过滤后店铺列表.csv'")

方法二:使用pandas(代码更简洁,适合处理大文件)

如果你已经装了pandas,这个方法会更高效,代码也短很多:

import pandas as pd

# 读取两个CSV文件
df_main = pd.read_csv('店铺名称列表.csv', encoding='utf-8')
df_blacklist = pd.read_csv('黑名单店铺列表.csv', encoding='utf-8')

# 获取黑名单店铺集合
blacklist_set = set(df_blacklist['店铺名称'].str.strip())

# 过滤主列表:保留不在黑名单中的店铺(~表示取反)
df_filtered = df_main[~df_main['店铺名称'].str.strip().isin(blacklist_set)]

# 保存过滤后的结果,index=False是为了不生成默认索引列
df_filtered.to_csv('过滤后店铺列表.csv', index=False, encoding='utf-8')

print("过滤完成!结果已保存到'过滤后店铺列表.csv'")

关键注意事项

  • 列名匹配:我默认两个CSV的店铺名称列都叫店铺名称,如果你的列名是别的(比如“店名”“商铺名称”),一定要把代码里的对应字段改成你实际的列名!
  • 编码问题:如果你的CSV是用GBK编码保存的,记得把encoding='utf-8'改成encoding='gbk',避免出现乱码。
  • 数据备份:建议不要直接覆盖原主列表文件,先写新文件确认没问题后再替换,防止误操作丢失数据。
  • 空格处理:用strip()去除店铺名称前后的空格,避免因为多打了空格导致匹配失败(比如“ 张三超市 ”和“张三超市”会被当成不同的店铺)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:01:26