pandas.Series.str.contains() 找不到系列中存在的字符串

pandas.Series.str.contains() is not finding a string which exists in the Series

我正在尝试将列表中的一堆名称与 Pandas DataFrame 的其中一列中的名称相匹配。 DataFrame的一小部分如下所示:

“对象 ID”列中的值有一些空格,我使用以下行删除了这些空格:

df["Object ID"] = df["Object ID"].str.strip()

我正在使用以下行搜索“对象 ID”列:

df[df["Object ID"].str.contains('EM* LkHA 115') == True]

尽管 'EM* LkHA 115' 存在于数据框中,但上面的行返回一个空数据框,如下所示:

知道我做错了什么吗?如果有帮助,我很乐意提供任何进一步的信息。

提前致谢!

您必须转义“*”字符。

df[df["Object ID"].str.contains('EM\* LkHA 115')]

你也不需要 == True

正如@MustafaAydın 在下面的评论中所说,您可以使用正则表达式库动态执行此操作。

import re

df[df["Object ID"].str.contains(re.escape('EM* LkHA 115'))]