2017-04-24 1 views
0

Zum Beispiel kann eine Zeile in den Daten wie folgt aussiehtPython Pandas Daten des Formular Etiketts lesen <index_1>: <val_1><index_2>: <val_2>

-1 0:183.3575741549828 1:3.11164735151736 2:2.171277907851733 3:26.68849990272964 4:24.76677388937082 5:0.02710337995527495 

Der Grund, warum Index angegeben ist, weil Attribute, für den Index nicht angegeben werden als Null angenommen.

Ich versuche, die Anweisung zu verwenden:

train = pd.read_csv('train.csv', header=None, delim_whitespace=True).values 

Es wird folgende Fehler zeigt:

train = pd.read_csv('train.csv', header=None, delim_whitespace=True).values

File "/usr/local/lib/python2.7/site-packages/pandas/io/parsers.py", line 646, in parser_f return _read(filepath_or_buffer, kwds)

File "/usr/local/lib/python2.7/site-packages/pandas/io/parsers.py", line 401, in _read data = parser.read()

File "/usr/local/lib/python2.7/site-packages/pandas/io/parsers.py", line 939, in read ret = self._engine.read(nrows)

File "/usr/local/lib/python2.7/site-packages/pandas/io/parsers.py", line 1508, in read data = self._reader.read(nrows)

File "pandas/parser.pyx", line 848, in pandas.parser.TextReader.read (pandas/parser.c:10415)

File "pandas/parser.pyx", line 870, in pandas.parser.TextReader._read_low_memory (pandas/parser.c:10691)

File "pandas/parser.pyx", line 924, in pandas.parser.TextReader._read_rows (pandas/parser.c:11437)

File "pandas/parser.pyx", line 911, in pandas.parser.TextReader._tokenize_rows (pandas/parser.c:11308)

File "pandas/parser.pyx", line 2024, in pandas.parser.raise_parser_error (pandas/parser.c:27037)

pandas.io.common.CParserError: Error tokenizing data. C error: Expected 132 fields in line 5, saw 143

ich nicht das Problem scheinen hier, um herauszufinden. Jede Hilfe wäre großartig!

+0

Sie bitte bearbeiten Sie Ihre Fehler in lesbarem Format? Außerdem kann ich die Zeile in Ihren Daten nicht verstehen. Ist das eine Reihe von Wörterbüchern? – splinter

+0

@splinter Dies ist eine Zeile in einer CSV-Datei. Die Anzahl der Attribute ist eine feste Zahl, z. B. 4125 (0-4124). Eine Zeile gibt die Werte von Attributen für ein Trainingsbeispiel an. 2: 1231 besagt, dass Attribut 2 1231 ist. –

Antwort

0

Basierend auf Ihrer Datenbeschreibung und der Fehlermeldung meine Schätzung ist, dass die Zeilen in Ihrer CSV-Datei nicht die gleiche Anzahl von Feldern pro Zeile haben. Versuchen Sie, die Feldspalten spezifiziert:

my_cols = range(0,4125) 
train = pd.read_csv('train.csv', header=None, delim_whitespace=True, names=my_cols).values 

weitere Hilfe finden Sie hier: import csv with different number of columns per row using Pandas und hier: Handling Variable Number of Columns with Pandas - Python

+0

Hat dies Ihr Problem gelöst oder benötigen Sie weitere Hilfe? – Nyps