Python 如何识别列表中的重复字符串?
我正在从csv文件的数据帧导入一个具有1280(我认为是这样)唯一ID的列 我曾计划将每个ID作为键放入字典,并将“0”设置为值。然后将所有内容放入新的数据帧中 当从DataFrame中提取列作为列表时,我注意到这个数字减少到了1189,而不是1280 我想,在原始数据帧中一定有重复项。这将是一个惊喜,因为ID应该是唯一的ID。我可以选择一个快捷方式,只使用新数据框的列表。然而,重要的是我要弄清楚发生了什么,如果有重复的话,我要找出重复的 唯一的问题是,我无法识别任何重复的。我不知道问题出在哪里Python 如何识别列表中的重复字符串?,python,list,subtraction,Python,List,Subtraction,我正在从csv文件的数据帧导入一个具有1280(我认为是这样)唯一ID的列 我曾计划将每个ID作为键放入字典,并将“0”设置为值。然后将所有内容放入新的数据帧中 当从DataFrame中提取列作为列表时,我注意到这个数字减少到了1189,而不是1280 我想,在原始数据帧中一定有重复项。这将是一个惊喜,因为ID应该是唯一的ID。我可以选择一个快捷方式,只使用新数据框的列表。然而,重要的是我要弄清楚发生了什么,如果有重复的话,我要找出重复的 唯一的问题是,我无法识别任何重复的。我不知道问题出在哪里
import pandas as pd
from itertools import cycle
DF0 = pd.read_csv("FILENAME.csv", sep='$', encoding='utf-8-sig')
l_o_0 = ['0']
l_DF0 = list(DF0['Short_ID'])
print(' len of origin object '+str(len(DF0['Short_ID'])))
print(' l_DF0 is a '+str(type(l_DF0)))
print(' of len '+str(len(l_DF0))+'\n')
d_DF0 = dict(zip(DF0['Short_ID'], cycle(l_o_0)))
print(' len of origin object '+str(len(DF0['Short_ID'])))
print(' d_DF0 is a '+str(type(d_DF0)))
print(' of len '+str(len(d_DF0))+'\n')
print(' difference: '+(str(len(DF0['Short_ID'])-len(d_DF0)))+'\n')
s_DF0 = set(l_DF0)
print(' s_DF0 is a '+str(type(s_DF0)))
print(' of length '+str(len(s_DF0))+'\n')
red_l_DF0 = list(s_DF0)
print(' red_l_DF0 is a '+str(type(red_l_DF0)))
print(' of length '+str(len(red_l_DF0))+'\n')
l_prob = []
for item in l_DF0:
if item not in red_l_DF0:
l_prob.append(item)
print(len(l_prob))
输出为:
len of origin object 1280
l_DF0 is a <class 'list'>
of len 1280
len of origin object 1280
d_DF0 is a <class 'dict'>
of len 1189
difference: 91
s_DF0 is a <class 'set'>
of length 1189
red_l_DF0 is a <class 'list'>
of length 1189
l_prob is a <class 'list'>
of length 0
>>>
len原始对象1280
l_DF0是一个
len 1280的应用
原始对象的透镜1280
d_DF0是一个
第1189号透镜
差额:91
s_DF0是一个
长度为1189
red_l_DF0是一个
长度为1189
l_prob是一个
长度为0的
>>>
根据我在这里找到的内容,我尝试了上述方法:要么我没有正确地使用这个工具,要么它是错误的工具。
任何帮助都将不胜感激——提前感谢 使用熊猫的
复制功能:
duplicated_stuff = DF0[DF0['Short_ID'].duplicated()]
根据您希望看到的内容,更改duplicated的keep
参数。对于调试,您可能希望keep=False
使用pandas的duplicated
功能:
duplicated_stuff = DF0[DF0['Short_ID'].duplicated()]
根据您希望看到的内容,更改duplicated的keep
参数。对于调试,您可能需要keep=False