Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何识别列表中的重复字符串?_Python_List_Subtraction - Fatal编程技术网

Python 如何识别列表中的重复字符串?

Python 如何识别列表中的重复字符串?,python,list,subtraction,Python,List,Subtraction,我正在从csv文件的数据帧导入一个具有1280(我认为是这样)唯一ID的列 我曾计划将每个ID作为键放入字典,并将“0”设置为值。然后将所有内容放入新的数据帧中 当从DataFrame中提取列作为列表时,我注意到这个数字减少到了1189,而不是1280 我想,在原始数据帧中一定有重复项。这将是一个惊喜,因为ID应该是唯一的ID。我可以选择一个快捷方式,只使用新数据框的列表。然而,重要的是我要弄清楚发生了什么,如果有重复的话,我要找出重复的 唯一的问题是,我无法识别任何重复的。我不知道问题出在哪里

我正在从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