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

如何基于DataFrame列值生成新行:SKU仓位分配需求

SKU仓位分配拆分实现方案

需求明确:根据SKU所需仓位数,将每个SKU拆分为多行记录——前locations_needed-1行使用仓位额定体积location_amount,最后一行使用剩余体积remainder_volume,最终生成完整的仓位分配表。

原代码问题修正

原代码存在语法错误(缩进混乱、循环逻辑错误、DataFrame整列操作不符合需求),以下是修正后的可运行Pandas代码:

import pandas as pd

# 示例输入数据表
data = {
    'SKU': ['SKU001', 'SKU002'],
    'locations_needed': [3, 2],
    'location_amount': [10, 15],
    'remainder_volume': [5, 3]
}
df = pd.DataFrame(data)

new_locs = []
# 遍历每一行SKU数据,逐个处理拆分
for _, row in df.iterrows():
    sku = row['SKU']
    needed_count = row['locations_needed']
    full_volume = row['location_amount']
    remainder = row['remainder_volume']
    
    # 生成前needed_count-1条满载仓位记录
    for _ in range(needed_count - 1):
        new_locs.append({'SKU': sku, 'assigned_volume': full_volume})
    # 生成最后一条剩余体积的仓位记录
    new_locs.append({'SKU': sku, 'assigned_volume': remainder})

# 转换为最终的DataFrame
result_df = pd.DataFrame(new_locs)
print(result_df)

核心逻辑说明

  • 遍历原表的每一行SKU,针对单个SKU完成仓位拆分,避免整列操作的逻辑错误
  • 先循环needed_count-1次,生成满载体积的仓位记录
  • 最后添加剩余体积的记录,保证拆分后的总行数与所有SKU的locations_needed总和一致

运行输出示例

SKU  assigned_volume
0  SKU001               10
1  SKU001               10
2  SKU001                5
3  SKU002               15
4  SKU002                3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:25:38