项目简介:
售电公司服务于用户和电厂两个主体,用户向售电公司上报一年各个月份的用电需求量,各个电厂给出售电公司各个月份的电量供应量及报价,已知电量越大,价格越高。作为中间服务商,售电公司为了追求利润最大化,需要将用户的需求电量与电厂的供应电量进行匹配,要求用Python实现匹配出各个月满足用户需求的最低价的电量及对应的电厂。
数据集:
用户需求电量表: [月份、用户需求电量]
电厂供电量表: [月份、电厂1、电厂2、电厂3、电厂4]
思路分析:
首先我们看一下数据集长什么样:
用户提供的电量表:
以及电厂给出的电量表:
通过分析,我们了解到,我们需要实现将用户每个月份的电量与4个电厂对应月份的电量进行比较,在4个值中,选择大于用户电量且最小的那一个值,总共12个月的话,还可以用循环语句去循环。好像并不复杂,我们动手试一试:
首先导入Excel数据集到python中,用到xlrd模块,提取用户需求电量数据,用列表存储,代码如下:
#读取文件
import xlrd
#用户需求电量
data = xlrd.open_workbook(r'C:\Users\www12\Desktop\数据.xlsx')
sheet1=data.sheet_by_name('用户需求电量') #提取用户需求电量工作表
col_1 = sheet1.col(1) #提取工作表的第二列
col_1.pop(0) #删除第一行表头——'用户需求电量'
need=[]
for x in col_1: #提取该列的数值,x的格式为‘xlrd.sheet.Cell’
a=x.value
need.append(a)
print(need) #输出列表
结果如下:
print(need)
[100.0, 150.0, 120.0, 130.0, 140.