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

如何检测CSV文件中不区分大小写的重复name字段?

不区分大小写检测CSV重复条目解决方案

问题场景

现有CSV文件file.csv内容如下:

name,apptype
AppABC,python
appabc,python
AppABB,python
AppABA,python
Appaba,python

需求:找出name字段存在不区分大小写重复的条目,预期结果:

AppABC,python
appabc,python
AppABA,python
Appaba,python

错误方法分析

1. CSV+RE模块报错

用户代码:

with open(appcsv_path) as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')

for name in csv_reader:
    re.findall(name, csv_reader, flags=re.IGNORECASE)

错误原因:

  • csv_reader迭代返回的每一行是列表类型,不是字符串,直接传给re.findall会触发TypeError: unhashable type: 'list'
  • re.findall的第二个参数需要是字符串,不能是csv_reader迭代器,用法完全错误

2. Pandas代码返回空DataFrame

用户代码:

df = pd.read_csv(appcsv_path)
out = df[df.Name.str.strip().str.lower().duplicated(keep=False)].loc[0:0]
print(out.to_string(index=False)) 

错误原因:

  • CSV实际列名是name和apptype,代码中错误使用了Name和Type,列名不匹配导致筛选失败
  • 额外加了loc[0:0]强制只取第一行,即使筛选到结果也会被截断为空

正确解决方案

方案一:使用CSV模块手动处理

import csv

# 存储每个小写name对应的所有行
name_groups = {}

with open('file.csv', 'r', newline='') as csvfile:
    reader = csv.DictReader(csvfile)
    # 遍历所有行,按小写name分组
    for row in reader:
        normalized_name = row['name'].strip().lower()
        if normalized_name not in name_groups:
            name_groups[normalized_name] = []
        name_groups[normalized_name].append(row)

# 筛选出分组数量>1的条目,即不区分大小写重复的行
duplicate_rows = []
for group in name_groups.values():
    if len(group) > 1:
        duplicate_rows.extend(group)

# 输出结果,保留原始表头和格式
print(f"{reader.fieldnames[0]},{reader.fieldnames[1]}")
for row in duplicate_rows:
    print(f"{row['name']},{row['apptype']}")

方案二:使用Pandas高效处理

import pandas as pd

# 读取CSV,注意列名是原始的name/apptype
df = pd.read_csv('file.csv')
# 生成标准化的小写name列,用于判断重复
df['normalized_name'] = df['name'].str.strip().str.lower()
# 标记所有不区分大小写重复的行(keep=False保留所有重复项)
is_duplicate = df['normalized_name'].duplicated(keep=False)
# 筛选结果并删除辅助列
result_df = df[is_duplicate].drop(columns=['normalized_name'])

# 输出结果,去掉索引
print(result_df.to_string(index=False))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 10:57:22