Python中高效计算各UPC每日平均拣货量的方法求助
高效计算每个UPC每日平均拣货量的方法
嘿,不用纠结嵌套循环啦——Pandas的groupby完全能搞定这个需求,而且效率甩嵌套循环几条街!你之前的问题应该是分组的维度没选对,只按UPC分组的话,没法拿到每日的平均数据。
正确的分组计算步骤
你需要同时按UPC和date两个字段分组,这样才能得到每个UPC在每一天的平均拣货量。具体代码如下:
# 按UPC和日期分组,对拣货量求平均值 daily_avg_pick = practice_df.groupby(['UPC', 'date'])['quantity_picked'].mean().reset_index() # 查看结果 print(daily_avg_pick)
代码解释
groupby(['UPC', 'date']):把数据同时按商品编码(UPC)和日期分组,确保我们计算的是同一个UPC在同一天的平均拣货量['quantity_picked'].mean():对分组后的拣货量列求平均值reset_index():把分组后的分层索引转换成普通的列,这样结果会变成一个结构清晰的DataFrame,方便你查看每一行对应的UPC、日期和平均拣货量
更直观的展示方式(可选)
如果你想把数据整理成“UPC为行,日期为列”的表格形式,用pivot_table会更直观:
# 生成透视表,展示每个UPC在不同日期的平均拣货量 pivot_table_avg = practice_df.pivot_table( index='UPC', columns='date', values='quantity_picked', aggfunc='mean' ) print(pivot_table_avg)
为什么这些方法比嵌套循环好?
Pandas的分组、聚合操作都是底层用C实现的,处理55000+行数据完全不在话下,速度会比Python层面的嵌套循环快几十甚至上百倍,而且代码更简洁易读,后期维护也方便。
内容的提问来源于stack exchange,提问作者Emily Reed
相关产品推荐
相关产品推荐

