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

如何用Pandas的explode函数将行拆分为多行并均分量到三班次

用Pandas实现产量按班次拆分的高效方法

完全可以用explode替代低效的iterrows()循环,步骤简单直接:

  • 先给每行添加包含三个班次的列表列
  • 用explode拆分列表为独立行
  • 计算每班均分后的产量

代码实现

import pandas as pd

# 原始数据
df = pd.DataFrame({
    'product#': [1, 1, 2],
    'day': ['Jan 1', 'Jan 2', 'Jan 2'],
    'quantity': [30, 30, 60]
})

# 1. 给每行添加班次列表
df['shift'] = [[1,2,3]] * len(df)
# 2. 拆分列表为多行
df = df.explode('shift')
# 3. 计算每班产量
df['quantity'] = df['quantity'] / 3

# 可选:重置索引让结果更规整
df = df.reset_index(drop=True)

print(df)

运行结果

product#dayquantityshift
01Jan 110.01
11Jan 110.02
21Jan 110.03
31Jan 210.01
41Jan 210.02
51Jan 210.03
62Jan 220.01
72Jan 220.02
82Jan 220.03

补充说明

  • 这种向量化操作比iterrows()循环效率高得多,数据量越大优势越明显
  • 如果需要整数类型的产量,可替换为df['quantity'] = df['quantity'] // 3或(df['quantity'] / 3).astype(int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 03:32:39