代码之家  ›  专栏  ›  技术社区  ›  Axle Max

测试熊猫系列中是否出现了确切的字符串

  •  0
  • Axle Max  · 技术社区  · 6 年前

    在熊猫中df[列](即熊猫系列)

    如果我用

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

    如果一个条目是“ABC”,我会得到“True”

    但如果序列中的其他条目是“ABC私人有限公司”,则它也会返回一个(假阳性)“真”

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

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

    我试过正则表达式

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

    它可以工作,但问题是我想将“ABC”部分作为变量传递到regex中,我无法确定如何传递。

    请帮我找一个想学的人好吗?

    任何一个解决方案,如果一个记录与“ABC”完全匹配,而不是像“ABC Pty Ltd”这样的长字符串,也不是像“AB”这样的子字符串,都是理想的

    2 回复  |  直到 6 年前
        1
  •  5
  •   BENY    6 年前

    你可以的

    df['company_name'].eq('ABC').any() #(df['company_name']=='ABC').any()
    
        2
  •  0
  •   Axle Max    6 年前

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

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