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 种),导致最终选择的种类数量少于预期,进而影响总收益。
  • 数据分布不均: 如果数据中某些单品收益过高,可能会导致进货方案过于集中于这些单品,而忽略其他潜在的组合,影响整体收益最大化。

改进建议

  • 设置最低进货量: 可以为每个单品设置最低进货量,避免只选择少量高收益单品。
  • 考虑其他因素: 除了单品收益,还可以考虑库存周转率、市场需求等因素,制定更全面的进货方案。
  • 数据预处理: 对数据进行清洗和预处理,例如处理缺失值、异常值等,可以提高分析结果的准确性。
Python Pandas数据分析:基于收益最大化的进货方案

原文地址: https://www.cveoy.top/t/topic/erqb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录