Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.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 熊猫检查是否拆分了数据帧';s字段包含值_Python_Pandas_Dataframe - Fatal编程技术网

Python 熊猫检查是否拆分了数据帧';s字段包含值

Python 熊猫检查是否拆分了数据帧';s字段包含值,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个如下的数据帧 Name Hobby Tom Food,Sport,Art,Extreme Sport Mark Sport John Coding,Books 我想得到所有的行,其中一个人的爱好是例如体育。我试图通过拆分方法将字段转换为数组,但我不知道如何检查pandas数组是否包含指定的爱好。您可以使用.str.contains()检查字符串中是否存在单词 df[df['Hobby'].str.contains('Sport')] 编辑: 我们需要分割爱好,这样我们就可以有一

我有一个如下的数据帧

Name Hobby
Tom  Food,Sport,Art,Extreme Sport
Mark Sport  
John Coding,Books

我想得到所有的行,其中一个人的爱好是例如体育。我试图通过拆分方法将字段转换为数组,但我不知道如何检查pandas数组是否包含指定的爱好。

您可以使用
.str.contains()
检查字符串中是否存在单词

df[df['Hobby'].str.contains('Sport')]
编辑:

我们需要分割爱好,这样我们就可以有一个新的数据框,每个人每个爱好一行

然后我们就可以安全地过滤这个爱好了

SEARCHED\u HOBBY='Sport'
df=pd.DataFrame({'Name':['Tom','Mark','John','Hobby':['Food,Sport,Art,Extreme Sport','Sport','Coding,Books']})
df['Hobby']=df['Hobby'].str.split(','))
拆分的业余爱好=df.explode('业余爱好')
拆分的业余爱好=拆分的业余爱好[拆分的业余爱好['Hobby']==搜索的业余爱好]
df=df[df['Name'].isin(拆分的业余爱好['Name'])]

是的,但当我有运动和极限运动这样的分类时,我会同时收到这两个分类。我只想收到指定的。使用数组是否可以实现此目标?@FranciszekJob请检查我的编辑