如何高效进行数据分析:Pandas应用分类聚合统计代码优化指南
代码优化方案
最简优化代码(适配pandas 0.25及以上版本)
你可以直接通过pandas内置的分组聚合功能一步得到目标结果,无需多次计算、手动转换列表拼接:
app_category_info = apps.groupby('Category', as_index=False, sort=True).agg( **{ 'Number of apps': ('Category', 'count'), 'Average price': ('Price', 'mean'), 'Average rating': ('Rating', 'mean') } )
核心优化点
- 减少重复计算:原代码对分类列做了3次独立统计+1次单独去重排序,优化后仅执行1次分组计算,数据量较大时性能提升非常明显。
- 消除冗余逻辑:去掉了不必要的Series转列表、手动排序分类列的操作,代码量缩减70%,可读性更强。
- 规避潜在bug:原代码手动拼接多个列表生成DataFrame,若出现分类缺失、索引顺序不一致的情况会出现行列数据错配,pandas内置分组聚合会自动对齐索引,稳定性更高。
低版本pandas兼容写法
如果你的pandas版本低于0.25不支持命名聚合,可以用以下写法实现同样效果:
grouped = apps.groupby('Category', sort=True) app_category_info = pd.DataFrame({ 'Number of apps': grouped['Category'].count(), 'Average price': grouped['Price'].mean(), 'Average rating': grouped['Rating'].mean() }).reset_index()
内容的提问来源于stack exchange,提问作者zero
相关产品推荐
相关产品推荐

