繁体   English   中英

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

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

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

样本值-pandas-df

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

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

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

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

尽管 dataframe 中存在“EM* LkHA 115”,但上面的行返回一个空的 dataframe,如下所示:

值存在于 df

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

提前致谢 !

您必须转义“*”字符。

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'))]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM