gpt4 book ai didi

python - 在 python 中使用 str.contains 查找带有 pandas 的两个子字符串

转载 作者:行者123 更新时间:2023-12-01 07:02:10 35 4
gpt4 key购买 nike

恐怕解决方案是显而易见的,或者问题是重复的,但我还找不到答案:我有一个包含长字符串的 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

这是预期的结果。但我需要一个“And”组合和

data.col1.str.contains("element1&subpartA")

返回

False
False
False
False

尽管我期望

True
False
False
False

最佳答案

Regex and并不容易:

m = data.col1.str.contains(r'(?=.*subpartA)(?=.*element1)')  

Simplier 将两个条件与 & 进行按位 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

关于python - 在 python 中使用 str.contains 查找带有 pandas 的两个子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58588739/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com