Почему .loc[]
создает повторяющиеся строки в моем DataFrame? Я пытаюсь выбрать несколько столбцов из m3, DataFrame с 47 столбцами, чтобы создать новый DataFrame с именем output.
Проблема: после доступа к столбцам m3 с помощью .loc[]
вывод имеет намного больше дубликатов, чем началось с m3. Откуда могли появиться эти дубликаты? Я не нашел в Интернете ничего о .loc[]
дублирующих строках. Между прочим, выходной DataFrame объявляется в строке, которая читает output = m3.loc[...]
.
Код:
print("ARE THERE DUPLICATES in m3? ")
print(m3.duplicated().loc[lambda x: x==True])
output = m3.loc[:,["PLC_name", "line", "track", "notes", "final_source",
"s_name", "s_line", "s_track", "loc", "alt_loc", "suffix", "alt_match_name"]]
print("ARE THERE DUPLICATES in output? ")
print(output.duplicated().loc[lambda x: x==True].size, "duplicates")
Терминальный вывод:
ARE THERE DUPLICATES in m3?
5241 True
5242 True
5243 True
5355 True
5356 True
5357 True
dtype: bool
ARE THERE DUPLICATES in output?
1838 duplicates
Конечно, я мог бы легко решить проблему, позвонив по номеру .drop_duplicates(keep="first")
, но мне более интересно узнать, почему .loc[]
отображает такое поведение.