1

我有一个 DataFrame 对象,有多个列:business_id, categories, type_of_business...

我已经设法创建了一个较小的 DataFrame,仅使用原始 DataFrame 对象上的列索引business_id并通过列索引。categories

categories是某些字符串的列表。示例:['Restaurant, 'food', 'bakery']- 对于每个business_id.

类别之一是Restaurants. Restaurants我将如何仅检索单词在类别列表中的那些业务 ID 。

伪代码:

for row in smaller_DataFrame:
    if 'Restaurants' in row['categories']:
        add this business_id to some dictionary.

我对如何将if条件合并到 DataFrame 对象中感兴趣。

提前致谢。

4

2 回答 2

4

根据布尔条件选择行在文档中称为屏蔽。

df[df['categories'].isin(['Restaurant', 'food', 'bakery'])]

顺便说一句,我看到你被否决了。如果您包含一些 DataFrame 示例行和您想要的结果的示例,那就更好了。

要使其不区分大小写,请粘贴.str.lowercase()before .isin,并使类别列表全部小写。

于 2013-09-13T15:43:27.953 回答
2

你可以用地图做到这一点:

df[df.categories.map(lambda cats: 'Restaurants' in cats)]
于 2013-09-13T15:43:16.943 回答