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

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

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

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

Ответ 1

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

Ответ 2

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

Ответ 3

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

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

Ответ 4

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