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

标签 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' `

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

最佳答案

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

如果字符串变量中的任何位置出现“data science”(不区分大小写),这将返回“Data Science”。

为了处理不区分大小写的问题,请与 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'
   ...

关于python - 使用 if/else 语句在 pandas 列中查找特定单词字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49496755/

相关文章:

python - 正则表达式和重命名文件错误

python - 解析不同的日期格式: Regex

用于解析 "Accept" header 的正则表达式

python - 从python中的Parent类继承pandas dataframe的属性

python - Pandas:从 DataFrame 中迭代提取 Numpy 数组

python - 用于存储游戏 map 的列表或字典

python - 根据 pandas 中最后一次出现的字符串选择行

c# - 使用正则表达式和 |运算符(operator)

java - 替换java中字符串中的任何非ascii字符

python - 使用 pandas 0.13 导入多级索引 csv 数据