使用if / else语句在pandas列中查找特定的单词字符串

时间:2018-03-26 16:55:58

标签: python regex pandas

我试图标记一个'描述'列基于其中的字符串。我正在使用if / else语句。

现在它看起来像这样:

def char_matching(chars):
   if 'software' in chars:
       return 'Software development'
   elif 'Data' in chars:
       return 'Data Science'`

但是如果我想找到“数据科学”这个词怎么办呢?我在一栏中写道:

elif 'Data-science' in chars:
    return 'Data Science'`

elif 'Data|science' in chars:
    return 'Data Science' `

这是否适用于大写锁定,即'数据'和'数据'。你是如何克服这个障碍的?

1 个答案:

答案 0 :(得分:2)

if / else结构中的字符串可能包含空格。

如果“数据科学”(不区分大小写)出现在字符串变量的任何位置,这将return“数据科学”。

处理不区分大小写与chars.lower()的比较。如果您不进行此更改,则会应用区分大小写。

def char_matching(chars):
   val = chars.lower()
   if 'software' in val:
       return 'Software development'
   elif 'data science' in val:
       return 'Data Science'
   ...

要测试多个字词,您可以使用and

def char_matching(chars):
   val = chars.lower()
   if 'software' in val:
       return 'Software development'
   elif ('data' in val) and ('science' in val):
       return 'Data Science'
   ...