Ich bin neu in Python und ich versuche, die CSV-Datei Datensätze durch den Abgleich bestimmter Zeichenfolgen zu reduzieren. Ich möchte die Zeilen des übereinstimmenden in eine neue CSV-Datei schreiben. HierSchreiben Sie übereinstimmende Zeilen in csvfile zu einer neuen CSV-Datei mit Python
ist ein Beispiel-Datensatz:
Was ich versuche zu tun Suche nach für bestimmte passende Keywords über alle Zeilen gehen (zB schreiben nur die Zeilen Haftbefehls enthalten, wie sein kann auf dem Bild) zu einer neuen CSV-Datei.
Hier ist mein Code für bisher:
import csv
with open('test.csv', 'a') as myfile:
with open('train3.csv', 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter=',')
for r in spamreader:
for field in row:
if field == "OTHER OFFENSES":
myfile.write(r)
test.csv
ist leer und train3
enthält alle Datensätze.
Werfen Sie einen Blick auf https://docs.python.org/2/library/csv.html –
Sie können oft eine Menge über das, was vor sich geht, lernen, indem Sie einfach einige "else" -Anweisungen hinzufügen. Zum Beispiel, nach 'if field ==" ANDERE OFFENSES ":', könnten Sie 'else: print (field)' oder 'else: print (r)' schreiben. Es kann offensichtlich werden, warum Ihr Vergleich fehlschlägt, sobald Sie die tatsächlichen Daten sehen. Z.B. nach jeder Reihe könnte ein Newline-Zeichen stehen, das den Vergleich durcheinander bringt (das war die Ursache des Problems, als das letzte Mal jemand danach gefragt hat und ich geantwortet habe). Anstelle von "if field ==" ANDERE OFFENSES "' könnten Sie versuchen, 'wenn" ANDERE OFFENSES "in Feld:' – jDo
In Ihrem Dataset-Beispiel gibt es kein einzelnes Feld, das "ANDERE OFFENSES" 'entspricht. Sie würden also erwarten, dass die Ausgabedatei leer ist. – schwobaseggl