我有一个DataFrame对象,有多列:business_id
,categories
,type_of_business
...
我已设法通过对原始DataFrame对象进行列索引,仅使用business_id
和categories
创建一个较小的DataFrame。
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对象感兴趣。
提前致谢。
答案 0 :(得分:4)
根据布尔条件选择行在文档中称为 masking 。
df[df['categories'].isin(['Restaurant', 'food', 'bakery'])]
顺便说一句,我看到你被投票了。如果您包含DataFrame的一些示例行以及所需结果的示例,那就更好了。
要使其不区分大小写,请在.str.lowercase()
之前粘贴.isin
,并将类别列表全部小写。
答案 1 :(得分:2)
您可以使用地图:
df[df.categories.map(lambda cats: 'Restaurants' in cats)]