2016-08-25 1 views
0

Ich habe zwei csv-Dateien mit einer einzigen Spalte von Daten. Wie kann ich Daten in der zweiten CSV-Datei direkt durch Vergleichen mit den Daten in der ersten CSV-Datei entfernen? Zum Beispiel:Löschen Sie Daten in CSV-Datei mit Python?

import csv 
reader1 = csv.reader(open("file1.csv", "rb")) 
reader = csv.reader(open("file2.csv", "rb"))f 
for line in reader: 
    if line in reader1: 
     print line 

File 2

+0

Mögliches Duplikat [Spalten in einer CSV mit Python Löschen] (http://stackoverflow.com/questions/7588934/deleting-columns-in-a-csv-with-python) – Razik

Antwort

0

, wenn beide Dateien nur einzelne Spalten sind, dann könnten Sie set verwenden, um die Unterschiede zu entfernen. Dies setzt jedoch voraus, dass die Einträge in jeder Datei nicht dupliziert werden müssen und ihre Reihenfolge nicht wirklich wichtig ist.

#since each file is a column, unroll each file into a single list: 
dat1 = [x[0] for x in reader1] 
dat2 = [y[0] for y in reader] 

#take the set difference 
dat1_without_dat2 = set(dat1).difference(dat2) 
+0

das Ergebnis Ausnahme Traceback (letzter Aufruf zuletzt): Datei "C: /Users/cvs.py", Zeile 8, in dat1 = [x [[0]] für x in reader1] TypeError: Listenindizes müssen Ganzzahlen sein, nicht Liste –

+1

sollte jetzt behoben werden, sorry, ich habe gerade jemandem mit 'R' geholfen, daher' x [[0]] 'was falsch ist. 'x [0]', 'y [0]', sollte funktionieren –

+0

ok es funktioniert hanks –

Verwandte Themen