【问题标题】:Test if exact string appears in a Pandas Series测试熊猫系列中是否出现确切的字符串
【发布时间】:2021-02-25 13:49:48
【问题描述】:

在 Pandas df['Column'] 中(即 pandas 系列)

如果我使用

df['company_name'].str.contains('ABC').any()

如果条目是“ABC”,我会得到“真”

但如果系列中的其他条目是“ABC PTY LTD”,它也会返回(误报)“真”

如果有一个完全是“ABC”的条目,我只想匹配

我检查了大约 50 个类似的问题,但没有一个回答这个问题。

我尝试了一个正则表达式

rec_df['recruiters'].str.match( r'^ABC$').any()

它有效,但问题是我想将“ABC”部分作为变量传递到正则表达式中,但我不知道如何。

对想学习的NooB有什么帮助吗?

将记录与完全“ABC”匹配而不是像“ABC Pty Ltd”这样的较长字符串而不是像“AB”这样的子字符串的任何解决方案都是想法

【问题讨论】:

    标签: python-3.x pandas pattern-matching


    【解决方案1】:

    你可以的

    df['company_name'].eq('ABC').any() #(df['company_name']=='ABC').any()
    

    【讨论】:

    • 谢谢!我正在阅读 API 的 str.contains 部分,但没有 .eq 选项我非常感谢
    【解决方案2】:

    感谢@Wen 的回答。我还制定了 Regex 方法以防万一有人需要它。

    company_name = 'ABC'
    
    item = r'^' + company_name + '$' 
    
    df[‘company’].str.match(item).any()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-12
      • 2019-07-21
      • 2021-06-15
      • 2020-12-31
      • 2021-09-28
      相关资源
      最近更新 更多