Я использую pandas (python) csv_reader, и я не знаю, возможно или эффективно иметь выражение регулярного выражения для параметра "sep", который возвращает фрейм данных, как я хочу.
Я читаю из одного столбца CSV, который я должен преобразовать в 11 столбцов CSV.
Я пытаюсь получить разделитель, который достигает:
- Использует длинные пробелы в качестве разделителя;
- Использование пробелов между словом и строкой, содержащей числа (999-BBB CCCC);
- Использование пробелов между строкой, содержащей цифры и слово (AAA 999-BBB).
Данные поступают в следующем формате (несколько строк):
111-XXX XX XXXX AAA 999-BBB CCCC 0,00 01/01/1950 111.111 22. DDDD 11.111,11 11.111,11
До сих пор я добился только разделения больших пробелов и пробелов точкой с: sep = r "[.] {2,} "
Мне нужно, чтобы данные стали такими:
111-XXX XX XXXX | AAA | 999-BBB| CCCC | 0,00 | 01/01/1950 | 111.111 | 22 | DDDD | 11.111,11 | 11.111,11
Попытка обнаружить пробел, за которым следует число (чтобы разделить AAA от 999-BBB) с помощью" [] [0-9] "заканчивает тем, что удалял также первые числа (приводя к 99-BBB), что нежелательно.
Это мой код:
df = pd.read_csv("myarchive.csv",
sep=r"[ .]{2,}",
engine="python",
names = col,
usecols = col,
na_filter=False,
keep_default_na=False)