在pandas dataframe列中搜索特定的字符串集,然后搜索该字符串

梅丽·唐纳德

我想在特定列中搜索一组值。如果发生匹配,则返回匹配的字符串。目前,我只能得到是非。步骤如下:

  1. 创建df:
Cars = {'Brand': ['Honda Civic','Toyota Corolla','Ford Focus','Audi A4', np.nan],
    'Price': [22000,25000,27000,35000, 29000],
    'Liscence Plate': ['ABC 123', 'XYZ 789', 'CBA 321', 'ZYX 987', 'DEF 456']}

df = pd.DataFrame(Cars,columns= ['Brand', 'Price', 'Liscence Plate'])
  1. 搜索特定的一组值:
search_for_these_values = ['Honda', 'Toy', 'Ford Focus', 'Audi A4 2019']
pattern = '|'.join(search_for_these_values)
df['Match'] = df["Brand"].str.contains(pattern, na=False)
  1. 打印df:
print(df)
Brand   Price           Liscence Plate      Match
0       Honda Civic     22000    ABC 123    True
1       Toyota Corolla  25000    XYZ 789    True
2       Ford Focus      27000    CBA 321    True
3       Audi A4         35000    ZYX 987    False
4       NaN             29000    DEF 456    False

我想为“匹配”列提供以下内容:

Brand   Price           Liscence Plate      Match
0       Honda Civic     22000    ABC 123    Honda
1       Toyota Corolla  25000    XYZ 789    Toy
2       Ford Focus      27000    CBA 321    Ford Focus
3       Audi A4         35000    ZYX 987    
4       NaN             29000    DEF 456    
维克多·史翠比维

您可以使用

pattern = r'({})'.format('|'.join(sorted(search_for_these_values, key=len, reverse=True)))
df['Match'] = df["Brand"].str.extract(pattern, expand=False)

输出:

>>> df
            Brand  Price Liscence Plate       Match
0     Honda Civic  22000        ABC 123       Honda
1  Toyota Corolla  25000        XYZ 789         Toy
2      Ford Focus  27000        CBA 321  Ford Focus
3         Audi A4  35000        ZYX 987         NaN
4             NaN  29000        DEF 456         NaN

详细资料

  • sorted(search_for_these_values, key=len, reverse=True) -由于您的关键字包含多字词条目,因此您需要首先确保较长的词条在出现的交替模式中排在较短的词条之前(因为在NFA regex中,第一个匹配项“ wins”匹配,并且regex库停止搜索其余词条)当前位置的替代方案)
  • '|'.join(...) -交替模式是根据已排序的关键字构建的
  • r'({})'.format(...)-替换项包含一个Series.str.extract正常工作所必需的捕获组(仅当正则表达式模式中至少有一个捕获组时,才输出结果)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 pandas 列中搜索字符串并根据该字符串附加到行?

来自分类Dev

在 Pandas 中搜索字符串值

来自分类Dev

在pandas Dataframe内部的元组中搜索字符串

来自分类Dev

Python Pandas:如何在列中搜索字符串?

来自分类Dev

从python pandas的dataframe列中搜索匹配的字符串模式

来自分类Dev

搜索列中的字符串并通过在 Pandas 的数据框中添加另一列来提及该字符串

来自分类Dev

如何根据字符串pandas dataframe列中的每个值附加特定的字符串?

来自分类Dev

从列表中搜索数据框列中的部分字符串匹配-Pandas-Python

来自分类Dev

从列表中搜索数据框列中的部分字符串匹配-Pandas-Python

来自分类Dev

从pandas的Data-frame列中搜索字符串模式

来自分类Dev

在pandas的列中搜索列表,如果找到则返回字符串值,否则返回null

来自分类Dev

Python Pandas Regex:在列中搜索带有通配符的字符串并返回匹配项

来自分类Dev

Python Pandas 搜索带有元字符的字符串

来自分类Dev

摆脱Pandas Dataframe列中的重复字符串

来自分类Dev

在 Pandas Dataframe 的每一行中搜索一个字符串并返回找到的列名

来自分类Dev

如何在数据框中搜索部分字符串并使用 Pandas 返回特定单元格?

来自分类Dev

替换字符串中的字母组合,该字符串是pandas数据框中的列值

来自分类Dev

替换字符串中的字母组合,该字符串是pandas数据框中的列值

来自分类Dev

如何检查字符串列表中的字符串是否在pandas dataframe列中

来自分类Dev

从字符串列表中删除某些字符串作为 pandas.DataFrame 中的列

来自分类Dev

删除部分字符串pandas DataFrame

来自分类Dev

用pandas DataFrame制作字符串

来自分类Dev

Pandas Dataframe-在字符串中查找字符串的出现

来自分类Dev

从Pandas DataFrame删除引号中的字符串部分

来自分类Dev

在Pandas DataFrame中获取字符串而不是列表

来自分类Dev

高效访问 Pandas DataFrame 中的字符串值

来自分类Dev

如果搜索到的字符串在字符串开头包含子字符串,则Pandas string.contains不起作用

来自分类Dev

删除 pandas 列中的 unicode 字符串的字符串化列表

来自分类Dev

pandas 字符串以列的值结尾,然后将字符串的开头转换为日期进行比较

Related 相关文章

  1. 1

    如何在 pandas 列中搜索字符串并根据该字符串附加到行?

  2. 2

    在 Pandas 中搜索字符串值

  3. 3

    在pandas Dataframe内部的元组中搜索字符串

  4. 4

    Python Pandas:如何在列中搜索字符串?

  5. 5

    从python pandas的dataframe列中搜索匹配的字符串模式

  6. 6

    搜索列中的字符串并通过在 Pandas 的数据框中添加另一列来提及该字符串

  7. 7

    如何根据字符串pandas dataframe列中的每个值附加特定的字符串?

  8. 8

    从列表中搜索数据框列中的部分字符串匹配-Pandas-Python

  9. 9

    从列表中搜索数据框列中的部分字符串匹配-Pandas-Python

  10. 10

    从pandas的Data-frame列中搜索字符串模式

  11. 11

    在pandas的列中搜索列表,如果找到则返回字符串值,否则返回null

  12. 12

    Python Pandas Regex:在列中搜索带有通配符的字符串并返回匹配项

  13. 13

    Python Pandas 搜索带有元字符的字符串

  14. 14

    摆脱Pandas Dataframe列中的重复字符串

  15. 15

    在 Pandas Dataframe 的每一行中搜索一个字符串并返回找到的列名

  16. 16

    如何在数据框中搜索部分字符串并使用 Pandas 返回特定单元格?

  17. 17

    替换字符串中的字母组合,该字符串是pandas数据框中的列值

  18. 18

    替换字符串中的字母组合,该字符串是pandas数据框中的列值

  19. 19

    如何检查字符串列表中的字符串是否在pandas dataframe列中

  20. 20

    从字符串列表中删除某些字符串作为 pandas.DataFrame 中的列

  21. 21

    删除部分字符串pandas DataFrame

  22. 22

    用pandas DataFrame制作字符串

  23. 23

    Pandas Dataframe-在字符串中查找字符串的出现

  24. 24

    从Pandas DataFrame删除引号中的字符串部分

  25. 25

    在Pandas DataFrame中获取字符串而不是列表

  26. 26

    高效访问 Pandas DataFrame 中的字符串值

  27. 27

    如果搜索到的字符串在字符串开头包含子字符串,则Pandas string.contains不起作用

  28. 28

    删除 pandas 列中的 unicode 字符串的字符串化列表

  29. 29

    pandas 字符串以列的值结尾,然后将字符串的开头转换为日期进行比较

热门标签

归档