gpt4 book ai didi

python - 匹配另一个字符串中字符串中的所有单词(单词可以在不同的位置)

转载 作者:行者123 更新时间:2023-12-04 10:02:33 25 4
gpt4 key购买 nike

我有一个必须与数据框列匹配的字符串列表。

该列表如下所示:

list = ['golden village lte', 'pones wcdma', 'coral gbts', 'street view gbts', 'street view
wcdma']

数据框中的列如下所示:
data = {'COLUMN': ['wcdma street view disconnected', 'gbts planned work street view', 'lte atn golden village optical invalid', 'wcdma street view planned work']}

我想从列表中找到包含 sting 中每个单词的每一行,这样我就可以获得下一个数据帧:
  COLUMN                               |  String    
wcdma street view disconnected | street view wcdma
gbts planned work street view | street view gbts
lte atn golden village optical invalid| golden village lte
wcdma street view planned work | street view wcdma

我试图找到匹配项是在列表中提供字符串作为元素列表(如 ['street', 'view', 'wcdma'])并进行搜索:
df.apply(lambda x: all(er in x.COLUMN for er in list), axis=1)

但它不会给我任何返回,即使我知道必须至少有一场比赛。如果我将 all() 更改为 any() ,它将返回 smth 但这不是我需要的。

最佳答案

import pandas as pd
list2 = ['golden village lte', 'pones wcdma', 'coral gbts', 'street view gbts', 'street view wcdma']
list2=[x.split(' ') for x in list1]
data = {'COLUMN': ['wcdma street view disconnected', 'gbts planned work street view', 'lte atn golden village optical invalid', 'wcdma street view planned work']}
data=pd.DataFrame(data)
def search(x):
list1=x.split(' ')
for y in list2:
check=all(item in list1 for item in y)
if check:
return ' '.join(y)
return None
data['matched']=data['COLUMN'].transform(search)

说明:我正在将每个字符串转换为空间上的第一个列表拆分。将 transform() 用于“COLUMN”,我使用 all() 来检测“y”的所有元素是否都在“list2”中。如果是,我返回那个字符串

关于python - 匹配另一个字符串中字符串中的所有单词(单词可以在不同的位置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61757146/

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