【Python】熵值法权重计算分步骤基于Python实现熵值法,代码在pycharm上执行。

文章目录【Python】熵值法计算权重1 .导入库2 .数据读取3 .熵值法本体4 .打印出各指标的权重5 .将结果保存到csv文件中进行汇总

1 .导入库将所需的库导入pycharm

importpandasaspdimportnumpyasnpimportmathfromnumpyimportarray2.读取数据filename是文件的路径

#读取数据df=PD.read_CSV(filename.CSV )数据预处理,删除空值的记录df.dropna )3.熵值法主体定义熵值法函数

efcal_weight(x ) :是标准化的,这里使用了阈值方法

#标准化x=x.apply (lambdax : (x-NP.min (x ) )NP.max(x ) ) ) ) )熵中的常数k

#行cols=x.columns.size #列k=1.0/math.log(rows ) lnf=[ none ] * cols=x.columns.size #获取熵值中的常数k

#矩阵计算– #信息熵x=Array(x ) lnf=[ none ] * colsforiinrange (Rows ) ]lnf=Array(lnf ) forIinrange(0,rows ) 33666

#通过计算冗馀度d=1-e.sum(AXIS=0)计算权重

#计算每个指标的权重w=[[none]*1forIinrange(cols ) ] for j in range(0) 0,计算cols ) 3360wj=d[j]/sum(d ) w [ j ]=wj w=pols 计算要打印if__name_=)的df中每个字段的权重w=cal _ weight S1=NP.array (w ) w ) weights=weight (df ) mode=‘a’:将数据添加到csv文件,每行#header=true:dataframe的列名(标题) index=None :不添加索引列的w.to_CSV )