【发布时间】:2020-07-22 22:50:02
【问题描述】:
我很难在一个列 df 中找到字符串匹配,而另一个 df 包含一个正则表达式列表和它自己的正则表达式类型。这是正则表达式 df。
**Country** | **Regex**
CN | ^\w{8,25}$
BE | ^BE[0-9]{10}
AT | ^ATU[0-9]{8}
然后,我希望另一个 df 的 Data 列中的值扫描并找到与正则表达式 df 的任何匹配项,并返回他们找到匹配正则表达式的自己的国家/地区类型。这是我想要的输出(建议列)。需要它给我建议哪个国家类型与正则表达式匹配。
**Data** | **Suggestion** **Data** | **Suggestion**
BE135688 | ----> BE135688 | BE
78567899 | 78567899 | CN
AT5678899 | AT5678899 | AT
这是我尝试过的,
df['Data'].str.match(df_regex.Regex)
但是我得到了这个错误,
TypeError: ("'Series' objects are mutable, thus they cannot be hashed", 'occurred at index 271179')
我知道 str.match 只能匹配字符串类型。但我不知道如何让它扫描列中的整个值并为匹配的正则表达式返回它自己的国家类型。有没有更好的方法来做到这一点?感谢帮助:)
【问题讨论】:
-
这里没有专家。但是您可以使用 df.astype() 将数据帧转换为字符串,因为它表示数据帧系列是不可变的。
标签: python regex pandas numpy dataframe