我有一个csv,看起来像这样:
file.csv
name,apptype
AppABC,python
appabc,python
AppABB,python
AppABA,python
Appaba,python我需要找出一种方法来确定是否存在任何“名称”作为一个不区分大小写的重复,并报告结果。
在这种情况下,我应该知道以下是重复的:
AppABC,python
appabc,python
AppABA,python
Appaba,python这是我试过的,但不起作用。
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)这将导致一个错误:
TypeError: unhashable type: 'list'使用下面的Pandas方法,但将其编辑为"Name“而不是"name":
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)) 在以下方面的成果:
Empty DataFrame
Columns: [Name, Type]
Index: []发布于 2022-08-05 15:43:07
以下是使用duplicated的熊猫解决方案
import pandas as pd
df = pd.read_csv(appcsv_path)
out = df[df.name.str.strip().str.lower().duplicated(keep=False)].loc[:,'name']产出:
它将为您提供预期的输出
print(out.to_string(index=False))AppABC
appabc
AppABA
Appaba或者保留您可以做的两个列
out = df[df.name.str.strip().str.lower().duplicated(keep=False)]
print(out.to_string(index=False))这给了你
name apptype
AppABC python
appabc python
AppABA python
Appaba pythonhttps://stackoverflow.com/questions/73252091
复制相似问题