Python Pandas string.contains不';如果搜索的字符串包含字符串开头的子字符串,则不起作用
我使用str.contains搜索列中包含特定字符串作为子字符串的行Python Pandas string.contains不';如果搜索的字符串包含字符串开头的子字符串,则不起作用,python,string,pandas,substring,contains,Python,String,Pandas,Substring,Contains,我使用str.contains搜索列中包含特定字符串作为子字符串的行 df[df['col_name'].str.contains('find_this')] 这将返回字符串中“find_This”所在的所有行。但是,在df['col_name']中的字符串以'find_this'开头的罕见但重要的情况下,上述查询不会返回此行 str.contains()在应该返回true的地方返回false 任何帮助都将不胜感激,谢谢 编辑 我已经根据要求添加了一些示例数据。 我想更新'Eqvnt_id'
df[df['col_name'].str.contains('find_this')]
这将返回字符串中“find_This”所在的所有行。但是,在df['col_name']中的字符串以'find_this'开头的罕见但重要的情况下,上述查询不会返回此行
str.contains()在应该返回true的地方返回false
任何帮助都将不胜感激,谢谢
编辑 我已经根据要求添加了一些示例数据。 我想更新'Eqvnt_id'列,例如,列'Course_id'包含AAS 102的行都具有相同的'Eqvnt_id'值 为此,我需要能够在“Course_ID”中搜索“AAS 102”中的字符串,以便找到适当的行。但是,当我这样做时:
df[df['Course_ID'].str.contains('AAS 102')]
查询中不显示包含“AAS 102(英语102、JST 102、REL 102)”的行
数据类型都是对象。我尝试将它们映射并应用于字符串类型,但这对查询的成功没有任何影响
图像中的数据可以在中找到。您可以使用pandas.Series.str.find()代替它-它返回找到字符串的索引-如果它位于开始位置,则返回的索引将为0。如果未找到字符串,则返回-1
df[df['col_name'].str.find('find_this') != -1]
让我知道这是否有帮助 TLDR:尝试pandas.Series.str.normalize(),尝试不同的Unicode格式,直到问题得到解决NFKC为我工作 这个问题与我正在做的专栏中的数据格式有关
df['column'].str.contains('substring')
…对…的操作。使用pandas.Series.str.normalize()函数可以正常工作。有时,在我无法故意重新创建的某些情况下,字符串的开头或结尾会附加“\xa0”和“\n”。帮助解决如何处理该问题。在那篇文章之后,我对每个字符串列进行了for循环,并更改了unicode格式,直到我发现了一些有效的东西:“NFKC”。您能为您的问题添加一些示例数据吗?因为我认为这是一些与数据相关的问题。这应该是可行的。您可能有一些数据编码问题。有一个check@jezrael还有茶岩,我加了一个例子。我不知道你在想什么样的数据编码问题,有什么想法吗?一个想法-在真实数据中应该有2个或更多的空格或制表符,最好将列转换为列表和check@jezrael不幸的是,情况并非如此。我制作了另一列逗号分隔的值列表(仍然是字符串),同样的问题也存在。这个例子就是“AAS 102,ENGL 102,JST 102,REL 102”,有没有解释为什么这个答案被否决了?我不知道为什么会被否决,尽管当我尝试代码时,我遇到了同样的问题。有些人说这可能是一个数据类型问题,但我不确定如何更改列中的数据才能正常工作。