gpt4 book ai didi

python - 通过在一列字符串中查找确切的单词(未组合)来过滤 DataFrame

转载 作者:行者123 更新时间:2023-11-28 21:46:44 27 4
gpt4 key购买 nike

我的 DataFrame 有两列:

Name  Status
a I am Good
b Goodness!!!
c Good is what i feel
d Not Good-at-all

我想过滤 Status 将字符串“Good”作为其确切词的行,不与任何其他词或字符组合。

所以输出将是:

Name  Status
a i am Good
c Good is what i feel

另外两行中有一个“Good”字符串,但与其他字符混合在一起,因此不应被提取。

我试过:

d = df[df['Status'].str.contains('Good')]  # But all rows come up

我相信像 (r'\bGood\b', Status) 这样的正则表达式会做到这一点,但这无法将它们汇总在一起。我如何/在哪里可以将正则表达式放入 DataFrame 过滤条件中以实现此目的?以及如何实现startswithendswith 'Good'(精确词搜索)?

最佳答案

如果您将“精确”定义为没有其他字符(包括定义单词边界的标点符号 \b),您可以改为检查前导空格和尾随空格和/或开头/结束 anchor :

>>> df[df['Status'].str.contains(r'(?:\s|^)Good(?:\s|$)')]
Name Status
0 a I am Good
2 c Good is what i feel

解释:

  • (?:\s|^) 是一个非捕获组,寻找空格字符 (\s) 或字符串的开头 ( ^).

  • Good 是您要查找的词。

  • (?:\s|$) 是一个非捕获组,寻找空格字符 (\s) 或字符串结尾 ( $).

关于python - 通过在一列字符串中查找确切的单词(未组合)来过滤 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37457827/

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