使用Python使用列表中的字符从字符串中查找值

2024-09-27 21:26:53 发布

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

我一直在使用python编写Excel工作表,在该工作表中,我必须使用带有一组字符的列表,仅从列中提取特定值

需要使用列表检查列check中的每个字符,如果匹配,则需要将匹配的值返回到数据帧中,以便进一步分析

输入数据:

          text-value

19 Freezeland Lane, United Kingdom BD23 0UN
44 Bishopthorpe Road, United States LL55 1EU
Worthy Lane Denmark, LN11 9LP
88 Carriers Road, Mexico , DG3 1LB
HongKong

预期输出:

text_value

United Kingdom
United States
Denmark
Mexico
HongKong

代码片段:

import pandas as pd
import re
countries=['United Kingdom','Denmark','India','United States','Mexico','HongKong']

df['text_value'] = re.findall(countries, df.text_value)

但它不起作用 还尝试:

if re.compile('|'.join(countries),re.IGNORECASE).search(df['text_value']): 
    df['text_value']

Tags: 数据textredf列表value字符countries
1条回答
网友
1楼 · 发布于 2024-09-27 21:26:53

你可以用

df['country_list'] = df['text_value'].str.findall(r'(?i)\b(?:{})\b'.format('|'.join(countries)))

在这里,Series.str.findall返回在country_list列的每个单元格中找到的所有匹配项,以及看起来像(?i)\b(?:Country1|Country2|...)\b的模式匹配项

  • (?i)-不区分大小写的内联修饰符选项
  • \b-单词边界
  • (?:Country1|Country2|...)-国家名单
  • \b-单词边界

相关问题 更多 >

    热门问题