Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在文本中查找精确匹配项_Python_Pandas - Fatal编程技术网

Python 在文本中查找精确匹配项

Python 在文本中查找精确匹配项,python,pandas,Python,Pandas,我有一个评论数据集。我想在此文本中搜索精确的字符串 例如,此数据集的一部分: 这位牙医很棒 这位牙医很棒,但他的助手很差劲 完美的 我不喜欢我的牙医,他不完美 当字符串“perfect”和“this dentist is great”出现在数据集中时,必须在新数据集中返回它们。但前提是它完全匹配。因此,数据集中只应返回第1行和第3行 我的脚本返回所有行: df_return=df[df["columnA"].str.contains("perfect|this dentist is great"

我有一个评论数据集。我想在此文本中搜索精确的字符串

例如,此数据集的一部分:

这位牙医很棒
这位牙医很棒,但他的助手很差劲
完美的
我不喜欢我的牙医,他不完美

当字符串“perfect”和“this dentist is great”出现在数据集中时,必须在新数据集中返回它们。但前提是它完全匹配。因此,数据集中只应返回第1行和第3行

我的脚本返回所有行:

df_return=df[df["columnA"].str.contains("perfect|this dentist is great")==True]
df_return

我做错了什么?

使用直接相等检查==而不是包含以下内容

if df["columnA"].str == 'perfect' or df["columnA"].str == 'this dentist is great':
    print(["columnA"].str)


使用直接相等检查==而不是包含以下内容

if df["columnA"].str == 'perfect' or df["columnA"].str == 'this dentist is great':
    print(["columnA"].str)


您的正则表达式不正确,请将其替换为

df_return=df[df["columnA"].str.contains("^perfect$|^this dentist is great$")==True]
输出:

                 columnA
0  this dentist is great
2                perfect

您的正则表达式不正确,请将其替换为

df_return=df[df["columnA"].str.contains("^perfect$|^this dentist is great$")==True]
输出:

                 columnA
0  this dentist is great
2                perfect

也许您可以使用
match
来检查是否存在相同的问题

df_return = df[df['columnA'].str.match(pat='(perfect)|(this dentist is great)')]
df_return

请让我知道这是否有帮助

也许您可以使用
match
来检查是否存在相同的问题

df_return = df[df['columnA'].str.match(pat='(perfect)|(this dentist is great)')]
df_return

请让我知道这是否有帮助

像这样的东西可能有用-

df_return = df[df['columnA'].str.contains('perfect') | df['columnA'].str.contains('this dentist is perfect')]

像这样的东西可能有用-

df_return = df[df['columnA'].str.contains('perfect') | df['columnA'].str.contains('this dentist is perfect')]

不看脚本很难判断。使用str.containsShard中的正则表达式和条件来判断,而不看脚本。使用str.contains中的正则表达式和条件当我运行脚本时,我得到一个错误:“list”对象没有属性“str”@marita确切的实现取决于源代码,这在初始消息中丢失。我已经更新了一点解决方案,所以您可以再试一次。但请尝试将我的建议改编为您的实现当我运行您的脚本时,我得到一个错误:“list”对象没有属性“str”@marita确切的实现取决于源代码,这在初始消息中缺失。我已经更新了一点解决方案,所以您可以再试一次。但是试着让我的建议适合你