首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >搜索CSV以寻找不区分大小写的副本?

搜索CSV以寻找不区分大小写的副本?
EN

Stack Overflow用户
提问于 2022-08-05 15:29:51
回答 1查看 28关注 0票数 0

我有一个csv,看起来像这样:

file.csv

代码语言:javascript
复制
name,apptype
AppABC,python
appabc,python
AppABB,python
AppABA,python
Appaba,python

我需要找出一种方法来确定是否存在任何“名称”作为一个不区分大小写的重复,并报告结果。

在这种情况下,我应该知道以下是重复的:

代码语言:javascript
复制
AppABC,python
appabc,python
AppABA,python
Appaba,python

这是我试过的,但不起作用。

代码语言:javascript
复制
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)

这将导致一个错误:

代码语言:javascript
复制
TypeError: unhashable type: 'list'

使用下面的Pandas方法,但将其编辑为"Name“而不是"name":

代码语言:javascript
复制
    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)) 

在以下方面的成果:

代码语言:javascript
复制
Empty DataFrame
Columns: [Name, Type]
Index: []
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-05 15:43:07

以下是使用duplicated的熊猫解决方案

代码语言:javascript
复制
import pandas as pd
df = pd.read_csv(appcsv_path)
out = df[df.name.str.strip().str.lower().duplicated(keep=False)].loc[:,'name']

产出:

它将为您提供预期的输出

代码语言:javascript
复制
print(out.to_string(index=False))
代码语言:javascript
复制
AppABC
appabc
AppABA
Appaba

或者保留您可以做的两个列

代码语言:javascript
复制
out = df[df.name.str.strip().str.lower().duplicated(keep=False)]
print(out.to_string(index=False))

这给了你

代码语言:javascript
复制
  name apptype
AppABC  python
appabc  python
AppABA  python
Appaba  python
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73252091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档