Python中如何用groupby正确统计含辣味食品的订单数量
问题原因
你原有代码的问题是分组维度错误(按商品名分组),且没有对同一订单的多条商品记录做去重判断,因此会出现重复统计的问题。
实现思路
同一订单下可能包含多个商品,需要先对每个订单做分类标记:只要该订单下有任意一个商品标注为辣味,该订单就算作辣味订单,否则为非辣味订单,再统计两类订单的数量即可。
实现代码
# 按订单分组,标记每个订单是否含辣味商品 order_tag = df_orders.groupby('Order')['Spicy'].agg(lambda x: 'Yes' if 'Yes' in x.values else 'No') # 统计两类订单的数量,调整顺序匹配预期输出 result = order_tag.value_counts().reindex(['Yes', 'No']).reset_index(name='count')
输出效果
运行后result的内容和你预期一致:
Spicy count 0 Yes 2 1 No 1
内容的提问来源于stack exchange,提问作者izzyk000
相关产品推荐
相关产品推荐

