如何导入csv文件并在列中标识重复值?我必须将每个名称与同一列中的所有其他名称进行比较,并确定是否存在重复记录。
fruits_name_field_num1 = 0
fruits_name_field_num2 = 0
#from collections import Counter
rowCount = 0
fruits_name1 = ''
save_fruits_name1 = ''
for line in readRecord:
rowCount += 1
row_number = str(rowCount)
print(rowCount)
save_fruits_name = fruits_name
fruits_name = (str(line[fruits_name_field_num]))
save_fruits_name = fruits_name
if fruits_name == save_fruits_name:
print('same_fruits_name')
else:
print('different_fruits_name')
答案 0 :(得分:1)
您可以使用Pandas轻松地做到这一点。示例:
如果您的数据框看起来像这样:
a b
0 Bob Sarah
1 Rick Sarah
2 Steve Rick
3 Bob Matt
4 Ben Ben
5 Steve Bob
,您只想查找出现在该df列“ a”中的重复名称。您可以这样做:
df_duplicates = df[df.duplicated('a')]['a']
print(df_duplicates)
哪个输出:
3 Bob
5 Steve
完整代码:
import pandas as pd
df = pd.read_csv('something.csv')
print(df)
df_duplicates = df[df.duplicated('a')]['a']
print(df_duplicates)
答案 1 :(得分:1)
如果要标识重复的列名,最简单的方法是一行:
df = df.loc[:, ~df.columns.duplicated()]
df.columns.duplicated()
将为每个重复的列返回布尔掩码True
(因此不是第一次出现,而是所有后续出现的)。 tilda(~
)与布尔型掩码相反,因此仅对于每个掩码的第一次出现,它就是True
。最后,.loc[]
仅选择掩码为True
的那些事件。
如果在一列内,您想查看哪些值多次出现,可以使用:
dupes = {}
for col in df.columns:
dupes[col] = df.duplicated(subset=col)