[英]Python - Pandas - .str.contains filter for multiple columns
我目前正在使用 pandas 模块中的.str.contains function 来过滤包含某些文本的单元格。 我现在已经设法让过滤器为 1 列工作,但是在做了一些研究和测试之后,我无法让它过滤 2 列。
输入数据示例:
语法示例 1:
这些语法自行产生以下 output:
test1 = data[data["Date"].str.contains("Tue 02 Feb 2021")]
test2 = data[data["Agent"].str.contains("NaN", na=True, regex=False)]
语法示例 2
当尝试使用 | 将这些放在一起时这不起作用,但不会返回任何错误
test3 = data[data["Agent"].str.contains("NaN", na=True, regex=False) | data["Date"].str.contains("Tue 02 Feb 2021")]
您需要将条件表达式放入括号中:
data[(data["Agent"].str.contains("NaN", na=True, regex=False) | data["Date"].str.contains("Tue 02 Feb 2021"))]
尝试这个:
test3 = data[np.logical_or(data["Agent"].str.contains("NaN", na=True, regex=False), data["Date"].str.contains("Tue 02 Feb 2021"))]
您也可以将其括在括号中,因为或 (|) 运算符对于 numpy arrays 已重载。
如果我理解正确,你想过滤掉你的 dataframe 对吗? 我想你会想要&
而不是|
在这种情况下
>>> test3 = data[data["Agent"].str.contains("NaN", na=True, regex=False) & data["Date"].str.contains("Tue 02 Feb 2021")]
>>> print(test3)
Agent Description Date
2 None example Tue 02 Feb 2021
4 None example Tue 02 Feb 2021
>>>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.