You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas按相同category列值分组计算行均值,寻求更优实现方案

最优实现方案

直接使用Pandas内置的分组聚合+索引对齐逻辑即可,完全替代手动循环,代码简洁且性能更高:

copy_dfs = {}
for k, min_df in minor_dfs.items():
    # 按category分组求所有数值列均值,再用major的category列重索引保证顺序和空值填充逻辑
    copy_dfs[k] = min_df.groupby('category').mean(numeric_only=True).reindex(major_df['category'])

如果需要输出保留两位小数,直接追加.round(2)即可:

copy_dfs[k] = min_df.groupby('category').mean(numeric_only=True).reindex(major_df['category']).round(2)

逻辑说明

  1. groupby('category').mean(numeric_only=True) 自动按category分组计算所有数值列的均值,自动将category列设为结果索引,无需手动删除category列
  2. reindex(major_df['category']) 强制结果索引和major_df的category列完全对齐,若某个category在当前minor_df中无数据,会自动填充NaN,完全匹配你原逻辑的初始化效果
  3. 全程无显式Python层循环,底层基于Pandas优化的向量化操作实现,数据量越大,性能优势比手动遍历category越明显。

内容的提问来源于stack exchange,提问作者D. LaRocque

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 05:57:04