【问题标题】:Pandas: Filtering row with multiple string conditions [duplicate]Pandas:过滤具有多个字符串条件的行[重复]
【发布时间】: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")]?
  • 是的,字符串可以是正则表达式

标签: python pandas


【解决方案1】:

使用以下正则表达式:

df[~df.NAME.str.contains('Z{2,}')]

'Z{2,}' 表示 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...
猜你喜欢
  • 1970-01-01
  • 2019-01-18
  • 2021-12-09
  • 1970-01-01
  • 2020-06-07
  • 2021-01-27
  • 1970-01-01
相关资源
最近更新 更多