Я импортирую столбец с 1280 (как я думал) уникальными идентификаторами из DataFrame из csv-файла.
Я планировал поместить каждый идентификатор в словарь в качестве ключа и установить «0» в качестве значения. А затем поместите все в новый DataFrame.
При извлечении столбца из DataFrame в виде списка я заметил, что число было сокращено до 1189 вместо 1280.
Я понял, в оригинальном DataFrame должны быть дубликаты. Это было бы сюрпризом, поскольку идентификаторы должны быть уникальными. Я мог бы использовать ярлык и просто использовать список для нового DataFrame. Тем не менее, очень важно, чтобы я выяснил, что происходит, и выявил дубликаты, если они есть.
Единственная проблема в том, что я не могу определить дубликаты. Я в недоумении относительно того, в чем может быть проблема.
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
>>>
Я попробовал вышеизложенное на основе того, что нашел здесь:
Операция вычитания списка Python
Либо я не правильно использую инструмент, либо это неправильный инструмент.
Любая помощь будет оценена - спасибо заранее!