python csv DictReader geben
Fange ich an, code in python und ich habe jetzt das problem, dass die csv.DictReader bekommt von mir den falschen Datentyp.
Die csv-Datei sieht wie folgt aus:
Col1, Col2, Col3
1,2,3
90,2,3
pol = csv.DictReader(open('..\data\data.csv'),dialect='excel')
Col1 = []
for row in pol:
if row["Col1"] < 90:
Col1.append(row["Col1"] * 1.5)
else:
Col1.append("Col1")
Bekomme ich die folgende Fehlermeldung:
if row["Col1"] < 90:
TypeError: unorderable types: str() < int()
Werde ich nicht konvertieren jedes einzelne Wert. Ist es möglich zu definieren, werden die Werte der Spalte?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könntest du eine Bibliothek wie pandas, es ableiten, dass die Typen, die für Sie (es ist ein bisschen ein overkill, aber es macht den job).
Alternativ ist hier eine Implementierung eines typisierten DictReader:
und hier ist, wie es zu benutzen:
Wenn Sie zitieren, die nicht-numerischen Werte in der csv-Datei und initialisieren Sie den Leser durch
dann numerische Werte werden automatisch in Fließkommazahlen.
Habe ich nicht verwendet DictReader vor, aber Sie konnte nur tun dies, um den Wert:
Verwenden und dann col1 durch, Sie konnten wohl auch Bearbeiten Sie das Wörterbuch:
Aber es hängt davon ab, was Sie wollen, verwenden Sie die Zeile für später.
Sieht es aus wie Sie wollen, Col1, um ein array von zahlen, so würden Sie brauchen, um zu konvertieren row["Spalte1"], um eine Zahl, ob oder nicht Sie waren zu vergleichen mit einer Zahl. So konvertieren Sie es!