Исправлена манипуляция с шириной файла в Pandas
У меня есть файл фиксированной ширины со следующим форматом:
5678223313570888271712000000024XAXX0101010006461801325345088800.0784001501.25abc@yahoo.com
5678223324686600271712000000070XAXX0101010006461801325390998280.0784001501.25abcde.12345@gmail.com 5678123422992299
Вот что я попробовал:
import pandas as pd
ColSpecs = [(0,16),(16,31),(31,44),(44,62),(62,70),(70,73),(73,77),(77,127),(127,143)]
df = pd.read_fwf("~/filename.txt",colspecs=ColSpecs,Header=True)
Теперь это, безусловно, помогает мне конвертировать чисто в формате Pandas. Тем не менее, пустые (или фиксированные пробелы) обрезаются. Например, в поле "Электронная почта" (#8) установлено 50 символов. Они усекаются, как только они импортируются в фрейм данных Pandas.
Для манипулирования данными я создаю 3 новых поля, которые извлекаются из значений ранее импортированных полей.
Структура конечного файла:
[(0.16),(16,31),(31,44),(44,62),(62,70),(70,73),(73,77),(77127),(127143),(143153),(153163),(164165)]
Поскольку я не нашел ни одного метода to_fwf на фреймах данных или какой-либо другой альтернативы для Pandas -> Flat File (сохраняя оригинальную длину без изменений), я был бы очень признателен, если бы у кого-нибудь было лучшее решение.
PS: я читал, что awk/sed в Unix работает лучше, но все же хотел бы знать для Python