import pandas as pdimport numpy as npfrom sklearnpreprocessing import MinMaxScalerfrom kerasmodels import Sequentialfrom keraslayers import LSTM Denseimport tensorflowcompatv2 as tf# 读取数据data = pdread
这个报错是由于np.random.randint(27, 34)生成的随机数范围没有包含0,而replenishment的长度可能小于27,导致无法从中随机采样。解决这个问题的方法是在生成随机数范围时将下限设为0,即np.random.randint(0, 34)。这样即使replenishment的长度小于27,也可以从中随机采样0个元素。修改后的代码如下:
# 补货计划
replenishment = test_data.groupby('单品编码').sum().reset_index()
replenishment['预测销售量(千克)'] = predicted_sales.flatten()
replenishment = replenishment[replenishment['预测销售量(千克)'] >= 2.5]
replenishment = replenishment.sample(n=np.random.randint(0, 34))
# 定价策略
replenishment['定价策略'] = replenishment['批发价格'] * 1.2
# 输出结果
replenishment[['单品编码', '预测销售量(千克)', '定价策略']]
这样就可以避免报错了。
原文地址: https://www.cveoy.top/t/topic/i2e9 著作权归作者所有。请勿转载和采集!