2016-11-05 2 views
0

Ich versuche, die seeds dataset mit Pandas zu lesen. Beim Laden der Datei mit:Confusing read_table Fehler in Pandas

df = pd.read_table("seeds_dataset.txt", header=None) 

ich:

CParserError: Error tokenizing data. C error: Expected 8 fields in line 8, saw 10 

Nun, für die Datei mit Excel-Laden, ich brauchte Tab und Raum als Trennzeichen zur gleichen Zeit zu geben, um das richtig gelesen Datei an dieser Zeile 8, etwas, das mit Pandas nicht gemacht werden kann (soweit ich weiß). Sublime Text liest die Datei genau direkt.

Ich möchte nicht die schlechten Zeilen mit error_bad_lines überspringen, da es nichts falsch mit ihnen ist. Ich habe auch lineterminator ohne Erfolg verwendet.

Antwort

0

versuchen Sie die Option "delim_whitespace".

df = pd.read_table("seeds_dataset.txt", header=None, delim_whitespace = True) 

EDIT: detaillierteren Erläuterung:

die Methodensignatur für read_tablehere ist. Es hat alle möglichen Optionen, von denen eine sep ist. Dies definiert das Trennzeichen zwischen den Feldern und der Standardwert ist '\ t' (Tab). Eine Lösung besteht darin, das Argument sep zu ändern. Die Python-Implementierung des Pandas-Parsers ermöglicht die Verwendung von Regex-Delimitern, so dass sep = "\\s+" auf beliebig viele Leerzeichen begrenzt wird. Der C-Parser (der aussieht, als würden Sie die Fehlermeldung verwenden), erlaubt Ihnen jedoch nicht, Regex zu verwenden. Es hat aber die Option delim_whitespace, die genau Ihren Bedürfnissen entspricht!

+0

Danke für die Antwort, könnten Sie mehr erklären warum funktioniert die Verwendung von 'delim_whitespace'? Ich bin mehr daran interessiert, den Ursprung des Problems zu erfahren – Valilutzik