当在一个列中或在Python中的多个列中搜索多个字符串时,如何在str.contains函数中使用OR运算符?

时间:2019-08-11 16:16:06

标签: python-3.x string multiple-columns contains

我试图在Python中使用str.contains函数在列中搜索“关键字”。

我成功地在一列中查找了一个关键词。

但是,我需要以下内容: -在同一列中搜索多个关键字

我正在使用以下示例数据集:

Employee    Employee ID     Category    Comments
Jack        11234           Holiday     Holiday trip
Ben         1921            Business    Business trip
John        233535          Other       Other trip
Pete        892230          Other       Other trip

通过使用以下代码:

df[df['Category'].str.contains("holiday", case=False)]

我成功获得了以下结果:

Employee    Employee ID         Category        Comments
Jack            11234           Holiday         Holiday trip

但是,我想搜索Holiday or business关键字。使用OR运算符,我似乎无法使其工作。关于扩展代码的任何建议,以便我可以同时搜索假期或商务两个字?

然后,最终结果将需要如下所示(意味着返回在“类别”列中包含关键字“假日”或“业务”的行)

Employee    Employee ID     Category    Comments
Jack        11234           Holiday     Holiday trip
Ben         1921            Business    Business trip

下一部分是我想在多列中搜索关键字。我尝试了以下代码:

df[df['Category'].str.contains("holiday", case=False)] | 
df[df['Comments'].str.contains("holiday", case=False)]

但是不幸的是,这没有产生预期的结果。

非常感谢您的见解!

1 个答案:

答案 0 :(得分:2)

您使用|来表示str.contains中的“或”:

df[df['Category'].str.contains('holiday|business', case=False)]

有关更多信息,请参见docs