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

如何在Pandas中将计算结果向上取整为指定数值的倍数?

解决Pandas中向上取整到指定倍数的需求

要实现你要的效果——对正数的需求缺口向上取整为Case_Qty的倍数,负数缺口设为0,可以用Numpy的np.ceil配合除法、乘法来模拟Excel的CEILING函数,直接嵌套进原有的np.where逻辑里就行。

修改后的代码

import numpy as np
import pandas as pd

Months_of_inventory = 2
Case_Qty = 20

# 先计算需求缺口
demand_gap = df['Avg_Sales'] * Months_of_inventory - df['On_Hand_Inventory']

# 对正数缺口向上取整为Case_Qty的倍数,负数则设为0
df['Order'] = np.where(
    demand_gap <= 0,
    0,
    np.ceil(demand_gap / Case_Qty) * Case_Qty
)

补充说明

如果你的demand_gap是浮点数,需要确保最终结果为整数,可以在np.ceil后加上.astype(int):

df['Order'] = np.where(
    demand_gap <= 0,
    0,
    np.ceil(demand_gap / Case_Qty).astype(int) * Case_Qty
)

原理很直接:先把缺口除以Case_Qty得到对应倍数,用np.ceil向上取整到最近的整数,再乘回Case_Qty,就得到了大于等于原缺口的最小倍数。

内容的提问来源于stack exchange,提问作者Addis de la Fuente

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:35:57