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

Python按Order列统计物料各状态数量的实现求助

实现按订单统计不同状态的物料数量

我来帮你搞定这个需求!你已经完成了「Total Materials」列的统计,剩下的各状态物料数量统计可以用 pandas 的哑变量转换 + 分组求和来实现,具体步骤如下:

步骤1:回顾已实现的总物料数统计

你已经写出了正确的代码来计算每个订单的总物料数,这里再整合到完整流程里:

# 计算每个Order对应的总物料数并添加到原数据集
ds['Total Materials'] = ds.groupby('Order')['Order'].transform('count')

步骤2:统计各状态下的物料数量

我们可以通过以下两步实现:

  1. 用 pd.get_dummies() 将status列转换为多个二进制列(每个状态对应一列,该行符合状态则为1,否则为0)
  2. 按Order分组对这些二进制列求和,再用transform将结果映射回原数据的每一行,这样同一订单的所有行都会显示该订单对应状态的物料数量

具体代码:

import pandas as pd

# 生成status列的哑变量(每个状态对应独立列)
status_dummies = pd.get_dummies(ds['status'])

# 按Order分组,对每个状态列求和,并用transform将结果映射到每一行
status_counts = status_dummies.groupby(ds['Order']).transform('sum')

# 将状态统计列合并到原数据集
ds = pd.concat([ds, status_counts], axis=1)

最终结果

执行完上述代码后,你会得到和期望完全一致的数据集:

noOrdermaterialsstatusTotal Materialsavailablenot availableFeb-20
11000100available2110
21000200not available2110
31001500Feb-201001
41002400available4310
51002300not available4310
61002600available4310
71002900available4310
81003700available2200
91003800available2200

内容的提问来源于stack exchange,提问作者Nurbek Kuantyrov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 17:42:28