正则表达式通过python中的文本编辑了帐户详细信息

2024-10-04 01:30:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个多页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

但它没有起作用


Tags: 数据编辑pdftypelineaccount银行total
1条回答
网友
1楼 · 发布于 2024-10-04 01:30:25

如果它在dataframe中,只需在文本所在的列中使用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

相关问题 更多 >