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确切的实现取决于源代码,这在初始消息中缺失。我已经更新了一点解决方案,所以您可以再试一次。但是试着让我的建议适合你