Настройка разделителя в pandas чтение csv

Я читаю много разных файлов данных в различные фреймы данных pandas. Столбцы в этих файлах данных разделены пробелами. Однако для каждого файла количество пробелов различно (для некоторых из них есть только один пробел, для других-два пробела и так далее). Таким образом, каждый раз, когда я импортирую файл, я должен вручную перейти к этому файлу и увидеть количество пробелов, которые были использованы, и дать это количество пробелов в sep:

import pandas as pd
df = pd.read_csv('myfile.dat', sep = '    ')

есть ли как я могу сказать панд, чтобы предположить "любое количество пробелов" в качестве разделителя? Кроме того, есть ли способ сказать панд использовать любую вкладку (t) или пробелы в качестве разделителя?

4 ответов


Да, вы можете использовать простое регулярное выражение как sep='\s+' для обозначения одного или более пробелов.


вы также можете использовать параметр skipinitialspace=True, который пропускает ведущие пробелы после любой разделитель.


вы можете напрямую использовать delim_whitespace

import pandas as pd df = pd.read_csv('myfile.dat', delim_whitespace = 1 )


одна вещь, которую я нашел, - это если вы используете неподдерживаемый разделитель. Pandas/Dask придется использовать движок Python вместо движка C. Это намного медленнее.