Настройка разделителя в 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. Это намного медленнее.