Ответ 1
Да, вы можете использовать простое регулярное выражение, например sep='\s+'
, для обозначения одного или нескольких пробелов.
Я читаю много разных файлов данных в различные фреймы pandas. Столбцы в этих файлах данных разделяются пробелами. Однако для каждого файла количество пробелов различно (для некоторых из них есть только одно пространство, для других - два пробела и т.д.). Таким образом, каждый раз, когда я импортирую файл, я должен вручную перейти к этому файлу и увидеть количество пробелов, которые были использованы, и предоставить такое количество пробелов в sep
:
import pandas as pd
df = pd.read_csv('myfile.dat', sep = ' ')
Можно ли каким-либо образом указать pandas считать "любое количество пробелов" в качестве разделителя? Кроме того, можно ли каким-либо образом указать pandas использовать вкладку (\t
) или пробелы в качестве разделителя?
Да, вы можете использовать простое регулярное выражение, например sep='\s+'
, для обозначения одного или нескольких пробелов.
Вы также можете использовать параметр skipinitialspace=True
, который пропускает начальные пробелы после любого разделителя.
Вы можете напрямую использовать delim_whitespace
import pandas as pd
df = pd.read_csv('myfile.dat', delim_whitespace = 1 )
Одна вещь, которую я нашел, - это использование неподдерживаемого разделителя. Pandas/Dask придется использовать движок Python вместо движка C. Это намного медленнее.