import pandas as pd import numpy as np from scipy.optimize import minimize

读取Excel文件

df = pd.read_excel(r"D:\pythonProject3\会员信息\附件二:会员信息数据.xlsx")

计算距离r和周围商品数量

def calculate_distance(row): member_lat = row['会员GPS纬度'] member_lon = row['会员GPS经度'] df['距离'] = np.sqrt((df['商品GPS纬度'] - member_lat)**2 + (df['商品GPS经度'] - member_lon)**2) num_products = df[df['距离'] < 0.1].shape[0] return num_products

df['周围商品数量'] = df.apply(calculate_distance, axis=1)

获取预订任务限额

q2 = df['预订任务限额'].values[0]

定义引力子函数

def gravity_function(q1, r): return (0.17074800590158568 * q1 * (q26.0973538046874465)) / (r(-7.64598152989214))

优化计算每个商品满足条件的价格

def optimize_price(row): r = row['距离'] res = minimize(lambda q1: -gravity_function(q1, r), 0, bounds=[(0, None)]) return res.x[0]

df['最优价格'] = df.apply(optimize_price, axis=1)

选取每个商品的最小价格

df_min_price = df.groupby('商品名称')['最优价格'].min().reset_index()

输出每个商品及其对应价格

print(df_min_price[['商品名称', '最优价格']])


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

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