Манипуляции строк в Dataframe - PullRequest
0 голосов
/ 02 июня 2018

Я извлек текст из выписки по кредитной карте, вырезал только для транзакций за весь месяц и сохранил его в списке.Список состоит из 404 строк, и выдержка из этого списка показана ниже:

['Apr',
 '27',
 'UBER',
 'TECHNOLOGIES',
 'INC866-576-1039CA',
 '$10.93',
 'Apr',
 '27',
 'UBER',
 'TECHNOLOGIES',
 'INC866-576-1039CA',
 '$11.38',
 'Apr',
 '28',
 'COSTCO',
 'WHSE',
 '#1018HOUSTONTX',
 '$105.02']

Как видно, список соответствует стандартному формату, в котором одна транзакция состоит из 3 частей: Дата (2отдельные строки), описание (2-5 строк) и количество (1 строка).

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

Для комментариев. Необработанные данные, извлеченные из выписки по кредитной карте (PDF), также показаны ниже:

" \nApr 27\nUBER TECHNOLOGIES\nINC866-576-1039CA\n$10.93\nApr 27\nUBER TECHNOLOGIES\nINC866-576-1039CA\n$11.38\nApr 28\nCOSTCO WHSE #1018HOUSTONTX\n$105.02\n"

1 Ответ

0 голосов
/ 02 июня 2018

Вы должны просто поработать с исходным необработанным текстом, который в соответствии с вашим комментарием:

Apr 27
UBER TECHNOLOGIES
INC866-576-1039CA
$10.93
Apr 27
UBER TECHNOLOGIES
INC866-576-1039CA
$11.38
Apr 28
COSTCO WHSE #1018HOUSTONTX
$105.02

Похоже, что формат:

DATE
VENDOR
[EXTRA INFO, OPTIONAL]
$AMOUNT

Вы можете прочитать строкив цикле, что-то вроде этого:

txs = []
for line in file:
    date = pd.to_datetime(line)
    vendor = next(file)
    amount = next(file) # might not be amount yet
    while not amount.startswith('$'):
        vendor += amount
        amount = next(file)
    txs.append((date, vendor, amount))

# now create DataFrame
pd.DataFrame(txs)

Идея состоит в том, чтобы прочитать файл кусками, с одной итерацией цикла на транзакцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...