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

基于最新非零周数据计算产品单位成本的Pandas需求

解决方案:按最新有效周数据计算产品单位成本

嘿,我来帮你搞定这个按最新有效周数据计算单位成本的需求。咱们先明确核心要求:每个产品的单位成本要优先用最新一周的非零销量和成本数据(公式为 wkX_cost / wkX_qty),如果最新周的销量是0,就依次往前找第一个有非零数据的周来计算。

输入数据集

首先看一下我们的输入DataFrame:

import pandas as pd

df2 = pd.DataFrame([ 
    {'product':'iphone11', 'wk1_qty':2, 'wk1_amount':100, 'wk1_cost':60, 
     'wk2_qty':3, 'wk2_amount':150, 'wk2_cost':90, 'wk3_qty':0, 'wk3_amount':0, 'wk3_cost':0, 
     'wk4_qty':5, 'wk4_amount':300, 'wk4_cost':160, 'wk5_qty':0, 'wk5_amount':0, 'wk5_cost':0}, 
    {'product':'acer laptop', 'wk1_qty':3, 'wk1_amount':300, 'wk1_cost':210, 
     'wk2_qty':3, 'wk2_amount':300, 'wk2_cost':210, 'wk3_qty':0, 'wk3_amount':0, 'wk3_cost':0, 
     'wk4_qty':5, 'wk4_amount':550, 'wk4_cost':375, 'wk5_qty':5, 'wk5_amount':500, 'wk5_cost':375}
])

实现代码

下面是完整的解决方案代码,我会一步步解释逻辑:

# 定义函数:获取单个产品的最新有效单位成本
def get_latest_unit_cost(row):
    # 从最新的周(wk5)往最早的周(wk1)遍历
    for week_num in range(5, 0, -1):
        qty_col = f'wk{week_num}_qty'
        cost_col = f'wk{week_num}_cost'
        current_qty = row[qty_col]
        # 找到第一个非零销量的周,计算单位成本后返回
        if current_qty != 0:
            return row[cost_col] / current_qty
    # 极端情况:所有周销量都是0,返回None(可根据需求改成0或其他默认值)
    return None

# 给DataFrame新增product_price字段
df2['product_price'] = df2.apply(get_latest_unit_cost, axis=1)

# 打印结果
print(df2)

代码逻辑解释

  1. 倒序遍历周数据:用range(5, 0, -1)确保我们从最新的wk5开始检查,完全符合“优先最新有效数据”的要求;
  2. 匹配有效数据:对每个周,先检查销量是否非零,一旦找到符合条件的周,就用对应成本除以销量得到单位成本并返回;
  3. 极端情况处理:如果某个产品所有周的销量都是0,函数会返回None,你可以根据实际业务需求改成返回0或者其他默认值。

最终输出结果

运行代码后,得到的DataFrame就是你期望的结果:

product  wk1_qty  wk1_amount  wk1_cost  wk2_qty  wk2_amount  wk2_cost  wk3_qty  wk3_amount  wk3_cost  wk4_qty  wk4_amount  wk4_cost  wk5_qty  wk5_amount  wk5_cost  product_price
0      iphone11        2         100        60        3         150        90        0           0         0        5         300       160        0           0         0           32.0
1  acer laptop        3         300       210        3         300       210        0           0         0        5         550       375        5         500       375           75.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 20:52:43