首页 > 解决方案 > 如何搜索 df 列中是否存在特定字符串?

问题描述

我有一个包含多种类型的电影数据框 - 例如第 1 列和一些与情节相关的关键字 - 例如第 2 列。我想要做的是获取一个新数据框,其中仅包含与特定类型相关的条目,例如'科幻'。我遇到的问题是一些条目是多类型的,例如“恐怖、科幻、惊悚”。

这是我尝试过的:

df[(df == 'Sci-fi').any(axis=1)]

这只会给我在第 1 列中有一种类型的条目。它不会给我任何包含“科幻”和另一种类型的条目。如何让我的 df 显示包含“科幻”类型的多类型条目?

标签: pythonpandasdataframe

解决方案


df = pd.DataFrame({'Column1': ['Horror, Sci-fi, Thriller', 'Horror, Thriller', 'Sci-fi'], 'Column2': [1, 2, 3]})
print(df[df['Column1'].str.extract('(Sci-fi)', expand=False).notna()])

输出:

                    Column1  Column2
0  Horror, Sci-fi, Thriller        1
2                    Sci-fi        3

推荐阅读