首页 > 解决方案 > 单个列中的多个字符串匹配

问题描述

嗨,我正在使用 isin() 和 pandas 来找出数据集的“条件”列中包含“10”或“小时”的汽车。我在用

UScars.isin({'condition':[10, 'hours']})

但这给了我一个系统错误。

SystemError: 'built-in method view of numpy.ndarray object at 0x000001F40BF30EE0' returned a result with an error set.

我使用split()条件列将类型从 str 转换为 list。

我不知道我哪里错了。任何帮助将不胜感激。

谢谢

在此处输入图像描述

标签: pythonpandas

解决方案


您需要str.contains使用|运算符来指定多个字符串匹配。

来自文档的pd.isin

DataFrame 中的每个元素是否包含在值中。

df = pd.DataFrame({'A' : [0,1,2],
                  'Condition' : ['10 Hours', '20 Hours', '30 Days']})

print(df)

   A Condition
0  0  10 Hours
1  1  20 Hours
2  2   30 Days



df[df['Condition'].str.contains('10|Hours')]

   A Condition
0  0  10 Hours
1  1  20 Hours

推荐阅读