Es könnte ein Problem mit
- den Trennzeichen in Ihren Daten
- der ersten Zeile, wie von @TomAugspurger erwähnt
Um dies zu lösen, versuchen Sie, die sep
und/oder header
Argumente anzugeben, wenn Sie read_csv
aufrufen. Zum Beispiel,
df = pandas.read_csv(dateipfad, sep='Trennzeichen', header=None)
In dem obigen Code definiert sep
Ihr Trennzeichen und header=None
sagt pandas, dass Ihre Quelldaten keine Zeile für Kopfzeilen / Spaltentitel haben. So sagt die Dokumentation: "Wenn die Datei keine Überschriftenzeile enthält, sollten Sie explizit header=None übergeben". In diesem Fall erstellt pandas automatisch Ganzzahlen-Indizes für jedes Feld {0,1,2,...}.
Laut der Dokumentation sollte das Trennzeichen-Problem nicht ein Problem sein. Die Dokumentation besagt, dass "wenn sep None ist [nicht angegeben], wird er versuchen, dies automatisch zu bestimmen." Ich hatte jedoch kein Glück damit, auch bei offensichtlichen Trennzeichen.
Eine andere Lösung könnte sein, das Trennzeichen automatisch zu erkennen
# die ersten 2 Zeilen der Datei verwenden, um den Separator zu erkennen
temp_lines = csv_datei.readline() + '\n' + csv_datei.readline()
dialect = csv.Sniffer().sniff(temp_lines, delimiters=';,')
# denken Sie daran, zum Anfang der Datei zurückzukehren, damit sie beim nächsten Lesen wieder gelesen werden kann
csv_datei.seek(0)
df = pd.read_csv(csv_datei, sep=dialect.delimiter)