小编典典

Python和Pandas:如何查询列表类型列是否包含某些内容?

python

我有一个数据框,其中包含有关电影的信息。它有一个名为的列genre,其中包含它所属的流派列表。例如:

df['genre']

## returns

0       ['comedy', 'sci-fi']
1       ['action', 'romance', 'comedy']
2       ['documentary']
3       ['crime','horror']
...

我想知道如何查询数据框,以便它返回属于某个类型的电影?

例如,可能会df['genre'].contains('comedy')返回0或1。

我知道列表,可以做以下事情:

'comedy' in  ['comedy', 'sci-fi']

但是,在大熊猫中,我找不到类似的东西,我唯一知道的是df['genre'].str.contains(),但它不适用于列表类型。


阅读 300

收藏
2020-12-20

共1个答案

小编典典

您可以使用applycreate mask,然后boolean indexing

mask = df.genre.apply(lambda x: 'comedy' in x)
df1 = df[mask]
print (df1)
                       genre
0           [comedy, sci-fi]
1  [action, romance, comedy]
2020-12-20