gpt4 book ai didi

python Pandas : String Contains and Doesn't Contain

转载 作者:太空狗 更新时间:2023-10-30 00:29:24 36 4
gpt4 key购买 nike

我正在尝试匹配包含和不包含某些字符串的 Pandas DataFrame 的行。例如:

import pandas
df = pandas.Series(['ab1', 'ab2', 'b2', 'c3'])
df[df.str.contains("b")]

输出:

0    ab1
1 ab2
2 b2
dtype: object

期望的输出:

2     b2
dtype: object

问题:有没有一种优雅的表达方式?

df[[df.str.contains("b")==True] and [df.str.contains("a")==False]]
# Doesn't give desired outcome

最佳答案

你快到了,你只是语法不太正确,应该是:

df[(df.str.contains("b") == True) & (df.str.contains("a") == False)]

如果您有很多条件要应用,另一种可能更简洁的方法是将您的过滤器与 reduce 或循环链接在一起:

from functools import reduce
filters = [("a", False), ("b", True)]
reduce(lambda df, f: df[df.str.contains(f[0]) == f[1]], filters, df)
#outputs b2

关于 python Pandas : String Contains and Doesn't Contain,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34055584/

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