import pandas as pd import math

加载商品信息表和会员信息表

product_info = pd.read_excel('D:\pythonProject3\商品信息\商品打包.xlsx') member_info = pd.read_excel('D:\pythonProject3\打包问题\会员信息.xlsx')

对商品信息表按照经纬度排序

product_info.sort_values(by=['新商品GPS经度', '新商品GPS纬度'], inplace=True)

初始化会员挑选到商品的数量

member_info['挑选商品数量'] = 0

遍历每个会员

for i in range(len(member_info)): member = member_info.iloc[i]

# 获取会员的GPS经纬度
member_latitude = member['会员GPS纬度']
member_longitude = member['会员GPS经度']

# 获取会员的预订商品限额
limit = member['预订商品限额']

# 初始化商品数量和总距离
selected_quantity = 0
total_distance = 0

# 遍历每个商品
for j in range(len(product_info)):
    product = product_info.iloc[j]

    # 获取商品的GPS经纬度和打包数量
    product_latitude = product['新商品GPS纬度']
    product_longitude = product['新商品GPS经度']
    quantity = product['打包数量']

    # 计算商品与会员之间的距离
    distance = math.sqrt((member_latitude - product_latitude) ** 2 + (member_longitude - product_longitude) ** 2)

    # 判断商品与会员之间的距离是否满足要求
    if distance <= 1:
        # 判断挑选该商品是否会超过预订商品限额
        if selected_quantity + quantity <= limit:
            # 更新商品数量和总距离
            selected_quantity += quantity
            total_distance += distance
        else:
            break

# 更新会员挑选到商品的数量
member_info.at[i, '挑选商品数量'] = selected_quantity

输出每个会员挑选到商品的数量

print(member_info['挑选商品数量'])

把结果输出到“D:\pythonProject3\打包问题\会员信息 - 副本.xlsx”表中,同时打开它内容

member_info.to_excel('D:\pythonProject3\打包问题\会员信息 - 副本.xlsx', index=False)

Python Pandas: 根据会员位置和商品信息进行智能商品分配

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

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