首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >字符串与正则表达式列表匹配,如果与Python匹配,则添加列以提供相应值

字符串与正则表达式列表匹配,如果与Python匹配,则添加列以提供相应值
EN

Stack Overflow用户
提问于 2020-04-10 15:47:08
回答 1查看 143关注 0票数 0

我很难在一列df和另一列df中找到字符串匹配,其中包含regex列表和它自己的regex类型。这是regex df。

代码语言:javascript
复制
 **Country** |  **Regex**

     CN      |  ^\w{8,25}$
     BE      |  ^BE[0-9]{10}
     AT      |  ^ATU[0-9]{8}

然后,我希望另一个df中的Data列中的值扫描并找到与regex df匹配的任何内容,并返回它自己的国家类型,在那里他们找到了匹配的regex。这是我想要的输出( Suggestion列)。需要它给我的建议,哪个国家的类型,匹配正则表达式。

代码语言:javascript
复制
 **Data**   | **Suggestion**            **Data**   | **Suggestion** 

 BE135688   |              ---->        BE135688   |   BE   
 78567899   |                           78567899   |   CN
 AT5678899  |                           AT5678899  |   AT

这就是我试过的

代码语言:javascript
复制
df['Data'].str.match(df_regex.Regex)

但是我得到了这个错误,

代码语言:javascript
复制
TypeError: ("'Series' objects are mutable, thus they cannot be hashed", 'occurred at index 271179')

我知道str.match只能与字符串类型匹配。但我不知道如何让它扫描列中的整个值,并为匹配的正则表达式返回自己的国家类型。有没有更好的方法来做到这一点?感谢帮助:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-11 22:09:55

一种选择是遍历所有正则表达式,并在每次匹配时将相应的国家/地区添加到建议中。下面是一个例子*

代码语言:javascript
复制
import pandas as pd
df_regex = pd.DataFrame({'Country': ['CN', 'BE', 'AT'],
             'Regex': ['^\w{8,25}$', '^BE[0-9]{10}', '^AT[0-9]{7}']})
df = pd.DataFrame({'Data': ['BE135688', '78567899', 'AT5678899']})
regex_map = dict(zip(df_regex.Regex, df_regex.Country))
def country_suggestions(row):
    matches = []
    for reg in regex_map:
        if re.search(reg, row):
            matches.append(regex_map[reg])
    return ', '.join(matches)

df['Suggestions'] = df['Data'].apply(country_suggestions)
print(df)

这是输出:

代码语言:javascript
复制
        Data Suggestions
0   BE135688          CN
1   78567899          CN
2  AT5678899      CN, AT

*请注意,我已将正则表达式^ATU[0-9]{8}更改为^AT[0-9]{7},因此它实际上与值AT5678899匹配。这应该进行适当的调整。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61136038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档