Regex отредактировал данные учетной записи из текста в python - PullRequest
0 голосов
/ 19 июня 2020

У меня есть многостраничная выписка из банка в формате pdf, и я использую tesseract OCR, чтобы преобразовать ее в фрейм данных. У меня отредактированный номер счета в нескольких строках в pdf. Считайте следующие строки 3 разделенными:

'ACCOUNT TYPE A/C. BALANCE (I) | FIXED DEPOSITS (LINKED) BAL. (II) TOTAL BALANCE (I+!l) NOMINATION',`

'Savings A/c XXXXXXXX1002 4,58,636.08 0.00 4,58,636.08 Not Registered',

'TOTAL 4,58,636.08 0.00 4,58,636.08',

Последние 4 числа могут измениться, но всегда будут целыми числами, а длина строки всегда будет 12. Я хочу извлечь этот бит: XXXXXXXX1002. Пробовал

for line in splits:
if re.search(r'^[A-Z].*([0-9]{4}$)',line):
    AC = line

Но не вышло

1 Ответ

0 голосов
/ 19 июня 2020

Если он находится в кадре данных, просто используйте extract() из столбца, в котором существует текст

import pandas as pd
df = pd.DataFrame({'A': ['ACCOUNT TYPE A/C. BALANCE (I) | FIXED DEPOSITS (LINKED) BAL. (II) TOTAL BALANCE (I+!l) NOMINATION,'
                         'Savings A/c XXXXXXXX1002 4,58,636.08 0.00 4,58,636.08 Not Registered,'
                         'TOTAL 4,58,636.08 0.00 4,58,636.08']
                   })

df['number'] = df['A'].str.extract('Savings A/c (XXXXXXXX[0-9]{4})')

    print(df)

                             A        number
0  ACCOUNT TYPE A/C. BALANCE (I)....  XXXXXXXX1002
...