【发布时间】:2020-05-24 19:18:40
【问题描述】:
我正在使用 str.contains 搜索列包含特定字符串作为子字符串的行
df[df['col_name'].str.contains('find_this')]
这将返回“find_this”在字符串中某处的所有行。但是,在 df['col_name'] 中的字符串以 'find_this' 开头的罕见但重要的情况下,上述查询不会返回此行。
str.contains() 在应该返回 true 的地方返回 false。
任何帮助将不胜感激,谢谢!
编辑 我已按要求添加了一些示例数据。 Image of dataframe. 我想更新“Eqvnt_id”列,例如,“Course_ID”列包含 AAS 102 的行都具有相同的“Eqvnt_id”值。
为此,我需要能够在“Course_ID”中的字符串中搜索“AAS 102”,以便找到合适的行。但是,当我这样做时:
df[df['Course_ID'].str.contains('AAS 102')]
查询中没有出现“AAS 102 (ENGL 102, JST 102, REL 102)”的行!
数据类型都是对象。我已经尝试将它们映射并将它们应用于字符串类型,但它对查询的成功没有任何影响。
图片中的数据可以在https://github.com/isaachowen/stackoverflowquestionfiles找到
【问题讨论】:
-
您能在您的问题中添加一些示例数据吗?因为我认为这是一些与数据相关的问题。
-
这应该可以。您可能遇到一些数据编码问题。检查一下
-
@jezrael 和 Chayan,我添加了一个示例。我不确定您想到了什么数据编码问题,有什么想法吗?
-
一个想法 - 真实数据中应该有 2 个或更多空格或制表符,最好将列转换为列表和检查
-
@jezrael 不幸的是,事实并非如此。我已经制作了另一列以逗号分隔的值列表(仍然是一个字符串),并且存在相同的问题。该示例只是“AAS 102,ENGL 102,JST 102,REL 102”
标签: python string pandas substring contains