Ich versuche eine txt-Datei, die als unterschiedliche Anzahl von Spalten pro Zeile lesen. Hier ist der Anfang meiner Datei:ParserError mit Panda read_csv
60381 6
1 0.270 0.30 0.30 0.70 0.70
4.988 4.988 4.988 4.988 4.988 4.988 4.988 4.988 4.988 4.988 4.988 4.988
2 0.078 0.30 0.30 0.70 0.70
5.387 5.312 5.338 4.463 4.675 4.275 4.238 3.562 3.175 3.925 4.950 4.762
6 0.241 0.30 0.60 0.70 0.40
3.700 3.200 2.738 2.325 1.250 0.975 1.175 1.950 2.488 3.613 3.987 3.950
7 0.357 0.30 0.60 0.70 0.40
1.212 1.125 1.050 0.950 0.663 0.488 0.425 0.512 0.637 0.900 1.112 1.188
8 0.031 0.30 0.70 0.70 0.30
0.225 0.213 0.200 0.175 0.200 0.213 0.375 0.887 0.975 0.512 0.262 0.262
10 0.022 0.30 0.80 0.70 0.20
0.712 0.700 0.738 0.550 0.513 0.688 0.613 0.600 0.850 0.812 0.800 0.775
60382 5
6 0.197 0.30 0.60 0.70 0.40
3.700 3.200 2.738 2.325 1.250 0.975 1.175 1.950 2.488 3.613 3.987 3.950
7 0.413 0.30 0.60 0.70 0.40
1.212 1.125 1.050 0.950 0.663 0.488 0.425 0.512 0.637 0.900 1.112 1.188
8 0.016 0.30 0.70 0.70 0.30
0.225 0.213 0.200 0.175 0.200 0.213 0.375 0.887 0.975 0.512 0.262 0.262
10 0.111 0.30 0.80 0.70 0.20
0.712 0.700 0.738 0.550 0.513 0.688 0.613 0.600 0.850 0.812 0.800 0.775
11 0.263 0.30 0.50 0.70 0.50
1.812 1.388 1.087 0.825 0.538 0.400 0.338 0.400 0.500 0.925 0.962 1.100
Ich habe versucht Pandas mit read_csv es zu lesen:
import pandas as pd
data = pd.read_csv('./myfile.txt',header=None,sep='\s')
Welche der folgenden Fehler gibt:
ParserError: Expected 6 fields in line 3, saw 12. Error could possibly be due to quotes being ignored when a multi-char delimiter is used.
Also meine Datei doesn‘ t haben ein mehrzeiliges Trennzeichen oder Anführungszeichen. Ich habe eine Lösung für dieses ich in diesem Forum gefunden versucht, die Verwendung vorgeschlagen:
data = pd.read_csv(open('./myfile.txt','r'), header=None,encoding='utf-8', engine='c')
Obwohl dies über den Fehler behebt, das Array ich vorgestellt habe nicht Raum als Trennzeichen von Spalten verwenden, und der Ausgang hat nur 1 Spalte:
Wie soll ich die Datei lesen, um eine Spalte für jeden Wert zu erhalten? Es macht mir nichts aus, wenn es Nan-Werte gibt, die den Rest füllen.
'" das Array, das mir präsentiert wird, verwendet kein Leerzeichen als Trennzeichen für Spalten "' Warum würde es? Sie haben 'read_csv' nie gesagt, dass die Datei Leerzeichen als Trennzeichen verwendet. Sie müssen 'delimiter = ''' an 'read_csv' übergeben. – DeepSpace
Die Zeilen mit zwei Elementen (z. B. '60381 6') scheinen mir Metadaten zu sein. Sind Sie sicher, dass es sich um eine Standard-CSV-Datei handelt? – ayhan
Vereinbaren Sie mit @ayhan - das ist, was das wirft – kbball