Ich versuche die Datei in Pandas zu lesen. Die Datei hat durch Leerzeichen getrennte Werte, aber mit unterschiedlicher Anzahl von Leerzeichen habe ich versucht:
pd.read_csv('file.csv', delimiter=' ')
aber es funktioniert nicht
Ich versuche die Datei in Pandas zu lesen. Die Datei hat durch Leerzeichen getrennte Werte, aber mit unterschiedlicher Anzahl von Leerzeichen habe ich versucht:
pd.read_csv('file.csv', delimiter=' ')
aber es funktioniert nicht
Antworten:
delim_whitespace=True
Argument hinzufügen , es ist schneller als Regex.quelle
delimiter=' '
da sie sich in neueren Versionen gegenseitig ausschließen.delimiter=' '
ist sehr spröde, es heißt, nur ein Leerzeichen zu erwarten. Keine Tabs, Newsline, mehrere Leerzeichen, nicht unterbrechende Leerzeichen, Kombination dieser usw.delimiter='\s+'
ist das, was Pandas empfiehlt und robuster ist.Sie können Regex als Trennzeichen verwenden:
pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")
quelle
engine = "python"
, um eine Warnung zu vermeiden.Die akzeptierte Antwort scheint mit neueren Versionen von Python nicht zu funktionieren. Hier ist ein aktuelleres Beispiel mit einem benutzerdefinierten Dialekt :
csv.register_dialect('skip_space', skipinitialspace=True) with open(my_file, 'r') as f: reader=csv.reader(f , delimiter=' ', dialect='skip_space') for item in reader: print(item)
quelle