2016-11-03 1 views
0

Ich habe eine CSV-Datei, die ich test.csv aufrufen. Es ist durch eine getrennt. Um zu überprüfen, ob es korrekt ist, habe ich awk 'NR==**' test.csv | wc -w für verschiedene Werte von ** verwendet und sichergestellt, dass es wie erwartet 2595 Spalten hat.Fehler beim Laden eines CSV mit Pandas, die Leerzeichen getrennt ist

Es hat eine Kopfzeile. Ich lud die csv als numpy Array mit dem folgenden Code:

a = np.genfromtxt("test.csv", skip_header=1, delimiter=' ') 
a.shape 
(3367, 2595) 

Und es lädt die Datei korrekt mit 2595 Spalten.

Wenn ich es mit Pandas mit dem folgenden Code geladen habe, lud es die Datei mit der falschen Anzahl von Spalten.

test = pd.read_csv("test.csv", sep=' ') 
test.shape 
(3367, 2539) 

Dann habe ich delim_whitespace=True statt sep=' ' und es gab immer noch das gleiche Ergebnis.

Schließlich habe ich index_col=False verwendet und es warf eine IndexError: list index out of range.

Ist das ein Fehler in Pandas oder mache ich etwas falsch? Ich verwende Version 0.19.0.

Antwort

0

Schwer zu sagen, ohne den Text zu sehen, aber meine Vermutung ist, dass es etwas mit der Kopfzeile zu tun hat.

Versuchen:

df = pd.read_csv("text.csv", sep=" ", skiprows=1) 
df.shape 
+0

test = pd.read_csv ("../ Experimente/2500_ig_docfreq_5threshold/test.csv", sep =‘‘, skiprows = 1, header = None, index_col = None) Das hat funktioniert. Vielen Dank. Ich bin mir ziemlich sicher, dass in der Kopfzeile der Namen keine Leerzeichen stehen. Soll ich die Kopfzeile oder ein paar Zeilen in der Datei teilen, indem ich sie irgendwo hochlade? – shahensha

+0

Das Problem ist, dass Pandas herausfindet, wie der DataFrame aus der ersten analysierten Zeile aussehen sollte. Wenn der Header keine Leerzeichen enthält und der Parser denkt, dass es sich um eine Datenzeile handelt, wird der DataFrame eine einzelne Spalte haben . Wenn es wirklich 2595 Spalten hat, ist es wahrscheinlich zu groß, um es hier zu teilen. Wenn Sie die Kopfzeile und ein paar Zeilen an anderer Stelle hochladen können, wäre das hilfreich. – Batman

+0

Hier ist der Link: https://drive.google.com/file/d/0B-NosSKmH7C3VUVmSld1SkdFbEk/view – shahensha

Verwandte Themen