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.
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+")
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)