Eliminar filas duplicadas de CSV

Tengo un archivo CSV que se ve así

red,75,right red,344,right green,3,center yellow,3222,right blue,9,center black,123,left white,68,right green,47,left purple,48,left purple,988,right pink,2677,left white,34,right 

Estoy usando Python y estoy tratando de eliminar las filas que tienen duplicados en la celda 1. Sé que puedo lograr esto usando algo como pandas, pero estoy tratando de hacerlo usando la biblioteca CSV de python estándar.

El resultado esperado es …

 red,75,right green,3,center yellow,3222,right blue,9,center black,123,left white,68,right purple,988,right pink,2677,left 

¿Alguien tiene un ejemplo?

Related of "Eliminar filas duplicadas de CSV"

Simplemente puede usar un diccionario donde el color es la clave y el valor es la fila. Ignore el color si ya está en el diccionario; de lo contrario, agréguelo y escriba la fila en un nuevo archivo csv.

 import csv file_in = 'input_file.csv' file_out = 'output_file.csv' with open(file_in, 'rb') as fin, open(file_out, 'wb') as fout: reader = csv.reader(fin) writer = csv.writer(fout) d = {} for row in reader: color = row[0] if color not in d: d[color] = row writer.writerow(row) result = d.values() result # Output: # [['blue', '9', 'center'], # ['pink', '2677', 'left'], # ['purple', '48', 'left'], # ['yellow', '3222', 'right'], # ['black', '123', 'left'], # ['green', '3', 'center'], # ['white', '68', 'right'], # ['red', '75', 'right']] 

Y la salida del archivo csv:

 !cat output_file.csv # Output: # red,75,right # green,3,center # yellow,3222,right # blue,9,center # black,123,left # white,68,right # purple,48,left # pink,2677,left 

Puedes probar esto:

 import fileinput def main(): seen = set() # set for fast O(1) amortized lookup for line in fileinput.FileInput('1.csv', inplace=1): cell_1 = line.split(',')[0] if cell_1 not in seen: seen.add(cell_1) print line, # standard output is now redirected to the file if __name__ == '__main__': main()