赞
踩
在运用代码进行综合评价之前,首先对方法的理论进行介绍,具体如下图。
根据上述步骤,使用Python进行编写,具体如下。
import pandas as pd #导入pandas工具包
import numpy as np #导入numpy工具包
data = pd.read_excel("F:\Desktop\Python运行文件.xlsx")
# 设置 地区 为索引
data.set_index(['地区'], inplace=True)
data[:5]
# 获取列名称
n = list(data.columns)
# 这里采用均值化法
for i in n:
data[i] = data[i]/np.average(data[i])
data[:5]
# 这里以最优值为参考数列
A1 = []
# 获取最优列值
for i in n:
Max = np.max(data[i])
A1.append(Max)
# 转换形式
A1 = np.array(A1)
A1
m = len(data)
for i in range(m):
data[i:i+1] = abs(data[i:i+1] - A1)
# 最大值 MAX = [] # 每个指标的最大值 for i in n: l = max(data[i]) MAX.append(l) MAX = max(MAX) # 最小值 MIN = [] # 每个指标的最小值 for i in n: l = min(data[i]) MIN.append(l) MIN = min(MIN)
# 这里 rho 为0.5,可自行调整
for i in n:
data[i] = (MIN + 0.5*MAX)/(data[i] + 0.5*MAX)
data[:5]
score = []
for i in range(m):
s = sum(data[i:i+1].values[0])/len(n)
score.append(s)
data1 = pd.DataFrame(score, index = data.index, columns = ['综合得分'])
data1.index.name = '地区'
# 排序
data1['排序'] = data1.rank(ascending = False)
data1[:5]
# 保存为excel
data1.to_excel("F:\Desktop\综合得分.xlsx")
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。