Python:如何将Groupby与布尔索引结合实现单行统计符合条件分组数
解决方法
直接将分组计算、筛选条件和统计操作链式调用即可,正确的单行代码有两种写法:
写法一(直接筛选后统计数量):
cpu.groupby('Designer')['Processor'].nunique()[lambda x: x >= 2].count()
写法二(利用布尔值求和统计,更简洁):
cpu.groupby('Designer')['Processor'].nunique().ge(2).sum()
你的尝试报错原因
你写的cpu[cpu.groupby('designer')['processor'].nunique()>1]逻辑有误:groupby('designer')['processor'].nunique()返回的是按Designer分组后的统计结果,索引是Designer名称;而原DataFramecpu的索引是行号,两者索引不匹配,无法直接用分组结果筛选原数据,因此触发报错。
内容的提问来源于stack exchange,提问作者gangsta_churoo
相关产品推荐
相关产品推荐

