Pandas:过滤具有多个字符串条件的行[重复]

Posted

技术标签:

【中文标题】Pandas:过滤具有多个字符串条件的行[重复]【英文标题】:Pandas: Filtering row with multiple string conditions [duplicate] 【发布时间】:2019-01-16 00:03:32 【问题描述】:

我有一个数据集,其中有一列如下所示:

NAME
ZZKIDS
ZZZKIDS
ZZZANTHONY

要过滤行,我知道我可以使用这个:

df[~df.NAME.str.contains("ZZ")]

有没有办法将另一个“ZZZ”和“ZZ”一起添加?

【问题讨论】:

df[~df.NAME.str.contains("ZZ|ZZZ")]? 是的,字符串可以是正则表达式 【参考方案1】:

使用以下正则表达式:

df[~df.NAME.str.contains('Z2,')]

'Z2,' 表示 Z 出现 2 次或多次

【讨论】:

谢谢伙计。快速提问,由于 Z 出现 2 次或多次,它会过滤掉类似“ZACKZ”的内容吗? 不,我这样做只会寻找连续的Zs。如果您想过滤掉任何超过 2 个 Z 的值,无论它们是否连续,您都可以使用:df[df.NAME.str.count('Z') > 2] 例如 @sacul 可能是 OP 只想要 df[~df.NAME.str.startswith('ZZ')] 在这里...(给定示例...)也 - 如果字符串包含至少 2 个连续的 Z ......只需检查 ZZ就足够了,因为 3 个连续的 Z 也将只匹配两个连续的 Z...

以上是关于Pandas:过滤具有多个字符串条件的行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Pandas 数据框中按组过滤具有最小值的行 [重复]

如何从 Pandas 数据框中过滤包含字符串模式的行 [重复]

具有多个条件的布尔索引[重复]

使用 Pandas 过滤具有多个值的单元格中的字符串

Pandas 过滤多个串联子串

Pandas:如何根据特定列上特定值的条件选择数据框中的行[重复]