gpt4 book ai didi

regex - 在python中将相似的字符串分组为单个组

转载 作者:行者123 更新时间:2023-11-30 08:45:56 24 4
gpt4 key购买 nike

我的数据框中有大约 30,000 个银行名称。我想将它们分组为一个基本组,因为它们大多数都是相同的,只是它们位于不同的位置。但我不知道里面有哪些银行名称。

下面给出的是数据集的子集。从这些数据中我可以识别出两家银行,即皇家银行和巴克莱银行。所以我想分成 2 组。

皇家银行(数量:13)巴克莱(数量:7)

ROYAL BANK OF CANADA
ROYAL BANK OF CANADA
THE ROYAL BANK OF SCOTLAND PLC
THE ROYAL BANK OF SCOTLAND PLC
ROYAL BANK OF CANADA CAYMAN ISLANDS
RBC ROYAL BANK (TRINIDAD AND TOBAGO), LTD.
RBC ROYAL BANK (TRINIDAD AND TOBAGO), LTD.
THE ROYAL BANK OF SCOTLAND INTERNATIONAL, LTD.
THE ROYAL BANK OF SCOTLAND INTERNATIONAL LTD.
ROYAL BANK OF SCOTLAND, N.V.
RBC ROYAL BANK (BAHAMAS), LTD.
ROYAL BANK OF SCOTLAND PLC
ROYAL BANK OF SCOTLAND PLC
BARCLAYS BANK PLC
BARCLAYS BANK DELAWARE
BARCLAYS BANK OF GHANA, LTD.
BARCLAYS BANK DELAWARE
BARCLAYCARD GERMANY
BARCLAYS BANK PLC
BARCLAYS BANK PLC

还有其他银行也具有类似的模式,我希望有一个通用的方法来识别列表唯一组(银行名称)并在这些组下对类似的组进行分组。

最佳答案

你想要这样的东西吗?

[ ROYAL BANK ]
ROYAL BANK OF CANADA
ROYAL BANK OF CANADA
THE ROYAL BANK OF SCOTLAND PLC
THE ROYAL BANK OF SCOTLAND PLC
ROYAL BANK OF CANADA CAYMAN ISLANDS
RBC ROYAL BANK (TRINIDAD AND TOBAGO), LTD.
RBC ROYAL BANK (TRINIDAD AND TOBAGO), LTD.
THE ROYAL BANK OF SCOTLAND INTERNATIONAL, LTD.
THE ROYAL BANK OF SCOTLAND INTERNATIONAL LTD.
ROYAL BANK OF SCOTLAND, N.V.
RBC ROYAL BANK (BAHAMAS), LTD.
ROYAL BANK OF SCOTLAND PLC
ROYAL BANK OF SCOTLAND PLC

[ BARCLAY ]
BARCLAYS BANK PLC
BARCLAYS BANK DELAWARE
BARCLAYS BANK OF GHANA, LTD.
BARCLAYS BANK DELAWARE
BARCLAYCARD GERMANY
BARCLAYS BANK PLC
BARCLAYS BANK PLC

使用的正则表达式是

(?m)^\s*([A-Z\s]*?(?:(ROYAL BANK)|(BARCLAY)).*)$

Demo,,,其中匹配的银行名称被捕获到组 1检测到的关键字(ROYAL BANK, BARCLAY) 被捕获到组 2group 3,用于在 Python 脚本中使用它们按名称对银行进行分类。

以下 python 脚本可能会解释您想要的有关名称分类的一些基本概念。

import re
ss=""" copy & paste sample text in this area """

royalbank=[]
barclay=[]
regx= re.compile(r'(?m)^\s*([A-Z\s]*?(?:(ROYAL BANK)|(BARCLAY)).*)$')
matching=regx.findall(ss)
for m in matching:
if m[1] !="":
royalbank.append(m[0])
elif m[2] !="":
barclay.append(m[0])

print("\n[ ROYAL BANK ]")
for e in royalbank: print(e)
print("\n[ BARCLAY ]")
for e in barclay: print(e)

关于regex - 在python中将相似的字符串分组为单个组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49683370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com