Python Pandas数据分析:基于收益最大化的进货方案
import pandas as pd
# 读取数据
data = pd.read_csv('data5.csv')
# 计算每种单品的收益和进货量
data['单品收益'] = data['销量'] * data['成本加成定价'] * (1 - data['单品损耗'] * 0.01) - data['销量'] * data['批发价格']
data['进货量'] = data['销量'] * (1 + data['单品损耗'] * 0.01)
# 按照单品收益降序排序
sorted_data = data.sort_values(by='单品收益', ascending=False)
# 初始化进货方案
purchase_plan = {}
# 设定进货种类目标范围
min_purchase_types = 27
max_purchase_types = 33
# 遍历排序后的单品
for index, row in sorted_data.iterrows():
# 判断进货的单品种类是否已达到目标范围
if len(purchase_plan) >= min_purchase_types and len(purchase_plan) <= max_purchase_types:
break
# 获取单品名称和进货量
item = row['单品名称']
quantity = row['进货量']
# 添加进货方案
purchase_plan[item] = quantity
# 计算总收益
total_profit = sorted_data['单品收益'].sum()
print('进货方案:')
for item, quantity in purchase_plan.items():
print(f'{item}: {quantity}')
print('总收益:', total_profit)
代码分析
- 数据读取和计算: 代码首先使用
pd.read_csv()读取商品数据,然后计算每个单品的 '单品收益' 和 '进货量'。 - 排序: 根据 '单品收益' 对数据进行降序排序,以便优先选择收益更高的单品。
- 生成进货方案: 遍历排序后的数据,将单品及其进货量添加到
purchase_plan字典中,直到进货种类数量达到目标范围。 - 输出结果: 打印最终的进货方案和总收益。
数据条目影响
这段代码确实会受到数据条目的影响。
- 数据条目过少: 如果数据条目过少,排序后的高收益单品可能不足以填满目标进货种类范围 (27-33 种),导致最终选择的种类数量少于预期,进而影响总收益。
- 数据分布不均: 如果数据中某些单品收益过高,可能会导致进货方案过于集中于这些单品,而忽略其他潜在的组合,影响整体收益最大化。
改进建议
- 设置最低进货量: 可以为每个单品设置最低进货量,避免只选择少量高收益单品。
- 考虑其他因素: 除了单品收益,还可以考虑库存周转率、市场需求等因素,制定更全面的进货方案。
- 数据预处理: 对数据进行清洗和预处理,例如处理缺失值、异常值等,可以提高分析结果的准确性。
原文地址: https://www.cveoy.top/t/topic/erqb 著作权归作者所有。请勿转载和采集!