данных:Как удалить повторяющиеся строки из CSV?
112343 The data point was created on 1903.
112344 The data point was created on 1909.
112345 The data point was created on 1919.
112346 The data point was created on 1911.
112346 The data point was created on 1911-12.
112346 The data point was created on 1911-12.
112347 The data point was created on 1911.
112348 The data point was created on 1911.
Здесь дубликаты ид. Я хочу, чтобы дубликаты были удалены, но я хочу сохранить самую длинную строку [1] (как показано на идеальном выходе).
Вот что я пробовал:
import sys
import csv
import re
import string
df = csv.reader(‘fil.csv’, delimiter = ',')
for r in df:
dup = next(df)
if r[0] == dup[0]:
r[1] < dup[1]: #I am checking if the text is larger then the previous
print dup[0], dup[1]
else:
print r[0], r[1]
Но я получаю результат, как,
112343 The data point was created on 1903.
112346 The data point was created on 1911-12.
112346 The data point was created on 1911-12.
112346 The data point was created on 1911.
112348 The data point was created on 1911.
Ряды не хватает!
Идеальный выход будет
112343 The data point was created on 1903.
112344 The data point was created on 1909.
112345 The data point was created on 1919.
112346 The data point was created on 1911-12.
112347 The data point was created on 1911.
112348 The data point was created on 1911.
Как это можно сделать? Какое условие или ключевое слово можно использовать? Или у меня есть два повторяющихся файла и сравнение строк между ними для устранения дубликатов?
'cat fil.csv | sort | uniq> fil_deduped_sorted.csv' – Alik
@Alik, который все еще имеет две строки, начиная с' 112346' – user1717828
@ user1717828, вы правы. OP должен четко указывать, что он имеет ввиду, спрашивая, как удалить ** повторяющиеся строки **, так как '112346 Точка данных был создан в 1911 году. 'и' 112346. Точка данных была создана 1911-12. 'не дублируются – Alik