Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pandas string.contains不';如果搜索的字符串包含字符串开头的子字符串,则不起作用_Python_String_Pandas_Substring_Contains - Fatal编程技术网

Python Pandas string.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'

我使用str.contains搜索列中包含特定字符串作为子字符串的行

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”,有没有解释为什么这个答案被否决了?我不知道为什么会被否决,尽管当我尝试代码时,我遇到了同样的问题。有些人说这可能是一个数据类型问题,但我不确定如何更改列中的数据才能正常工作。