Lesen von Dateien mit durch Leerzeichen getrennten Werten in Pandas


Antworten:


133

delim_whitespace=TrueArgument hinzufügen , es ist schneller als Regex.


sollte das hinzufügen und entfernen, delimiter=' 'da sie sich in neueren Versionen gegenseitig ausschließen.
Matanster

2
@matanster: 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.
16.

29

Sie können Regex als Trennzeichen verwenden:

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")

2
Dies ist hilfreich, wenn Sie mehr als nur ein Leerzeichen als Trennzeichen haben. In aktuellen Versionen sollte man hinzufügen engine = "python", um eine Warnung zu vermeiden.
Jürg Merlin Spaak

1

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)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.