Lesen von Dateien mit durch Leerzeichen getrennten Werten in Pandas

Antworten:

133

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

HYRY
quelle
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+")

quelle
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)
Pierz
quelle