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请检查我的编辑