[英]Python - Pandas - Using Cross-section in conjunction with str.contains
[英]Using str.contains to look for two substrings with pandas in python
恐怕解决方案很明显或问题重复,但我还没有找到答案:我有一个包含长字符串的 pandas 数据帧,我需要同时匹配两个字符串。 我多次找到“或”版本,但还没有找到“和”解决方案。
请假设以下数据框,其中有趣的信息“元素类型”和子部分类型“由元素之间的随机分隔:
import pandas as pd
data = pd.DataFrame({"col1":["element1_random_string_subpartA"
, "element2_ran_str_subpartA"
, "element1_some_text_subpartB"
, "element2_some_other_text_subpartB"]})
我现在想过滤所有包含 element1 和 subpartA 的行。
data.col1.str.contains("element1|subpartA")
返回一个数据框
True
True
True
False
这是预期的结果。 但我需要一个“和”组合和
data.col1.str.contains("element1&subpartA")
返回
False
False
False
False
虽然我期待
True
False
False
False
正则Regex and
并不容易:
m = data.col1.str.contains(r'(?=.*subpartA)(?=.*element1)')
更简单的是将两个条件与&
链接为按位AND
:
m = data.col1.str.contains("subpartA") & data.col1.str.contains("element1")
print (m)
0 True
1 False
2 False
3 False
Name: col1, dtype: bool
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.