楼主: 1790605268
1730 10

[学习资料] Python与学术研究系列---第1期. 数据0-1标准化!(附代码、操作流程与可执行exe) [推广有奖]

  • 0关注
  • 30粉丝

院士

90%

还不是VIP/贵宾

-

威望
0
论坛币
167870 个
通用积分
110.2755
学术水平
107 点
热心指数
107 点
信用等级
106 点
经验
-26370 点
帖子
8683
精华
0
在线时间
959 小时
注册时间
2020-10-5
最后登录
2024-4-14

初级热心勋章

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
是否还在为数据标准化繁琐的操作而重复点击鼠标吗?
这里为大家分享一个偷懒省时的Python小程序
直接根据数据生成独立结果文件~~~

程序介绍与说明:程序使用Python语言编写,数据标准化考虑到了正负向指标,最终结果区间为[0,1]。计算前需要手动输入负向指标名称,若都为整项指标可不用输入。本人为编程业余爱好者,也是一名在校研究生,自学Python致力于减少学术研究繁琐操作(偷懒)。目前,真正的学术大神醉心研究,对代码与偷懒的拼接少有愿意花时间分享的;而真正的代码大神缺少作为研究者的代入感与情怀,对如此简单的东西或许不屑一顾。因此,我想就这“Pyhton与学术研究系列”为大家分享一些真正和学术数据处理密切相关的代码操作,同时也作为自己学习的总结。------此代码仅供大家讨论交流-------

操作说明与呈现:
1.首先将rar文件解压到任意文件夹下
2.将待处理的数据命名为“1”,双击exe文件等待几秒钟~~~
3.按提示输入要特别声明的负向指标,当负向指标输入完毕后输入0开始计算
4.运行结束后程序自动关闭,生成名为“2”的xlsx文件即为最终标准化后结果(主要代码解释会放在随后楼层中)

1.png 2.png 3.png 4.png
5.png


数据0-1化(附源代码+可执行exe).rar (50.23 MB, 需要: RMB 241 元)
本系列定位为交流分享,当然您的打赏与点赞就是我最大的动力~~~
下一期预告:会在数据0-1化基础上,进一步分享熵值法小程序,敬请期待!!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python 学术研究 操作流程 EXE 标准化 数据标准化 Python

已有 2 人评分学术水平 热心指数 信用等级 收起 理由
787486114 + 1 + 1 + 1 精彩帖子
hzl11 + 2 + 2 + 2 鼓励积极发帖讨论

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

沙发
1790605268 学生认证  发表于 2021-8-30 19:06:06 |只看作者 |坛友微信交流群
  1. ad=[]
  2. while True:
  3.     print('请正确输入负向指标,没有的话输入0结束录入')
  4.     s=input()
  5.     if s!='0':
  6.         ad.append(s)
  7.     elif s=='0':
  8.         print('负向指标录入完毕,分别为:'+','.join(ad))
  9.         break
复制代码


While True代码块较为简单,用于构造一个负向指标的列表,便于后续区分正向指标与负向指标。


  1. output={}
  2. for i in list(data.columns):
  3.     max=np.max(data[i])
  4.     min=np.min(data[i])
  5.     fenmu=max-min
  6.     linshi=[]
  7.     for j in data[i]:
  8.         if i not in ad:
  9.             fenzi=j-min
  10.         else:
  11.             fenzi=max-j
  12.         out=fenzi/fenmu
  13.         linshi.append(out)
  14.     output[i]=linshi
复制代码

此处为标准化的核心代码,data为一个二维的DataFrame,分别构造分母fenmu与分子fenzi。
分母为data列表中(对应excel表格中某一变量列)最大值与最小值之差。
相对而言分子的构造更为复杂,需要再用一层循环遍历列表中的每一个值(对一excel表格某一列某一个单元格),若为正向指标即减去最小值,若为负向指标即用最大值减去他。
最后,将二者相除放入一个名为linshi的列表中,再由临时列表添加到字典output中,键即为变量名称。

需要注意的是,data为一个二维的DataFrame,默认可以将excel首行作为键,比如excel中第一个变量为“a”,data['a']就可以读取这一列的数据(不包括第一行的字符“a”)




使用道具

藤椅
1790605268 学生认证  发表于 2021-8-31 08:09:02 来自手机 |只看作者 |坛友微信交流群
欢迎大家交流讨论

使用道具

板凳
hzl11 学生认证  发表于 2021-8-31 10:47:23 来自手机 |只看作者 |坛友微信交流群
1790605268 发表于 2021-8-30 17:09
是否还在为数据标准化繁琐的操作而重复点击鼠标吗?
这里为大家分享一个偷懒省时的Python小程序
直接根据 ...
感谢你的分享,一直都在关注

使用道具

报纸
1790605268 学生认证  发表于 2021-8-31 18:52:18 |只看作者 |坛友微信交流群
hzl11 发表于 2021-8-31 10:47
感谢你的分享,一直都在关注
感谢支持

使用道具

地板
1790605268 学生认证  发表于 2021-9-3 19:37:54 |只看作者 |坛友微信交流群
熵值法程序已经制作完毕,马上即可分享,敬请期待~~~

使用道具

7
1790605268 学生认证  发表于 2021-9-4 19:16:58 |只看作者 |坛友微信交流群
最新第二期已经发布!!!熵值法exe,需要自取

Python与学术研究系列---第2期.自制熵值法exe程序(无需打开excel复制数据)
https://bbs.pinggu.org/forum.php ... mp;from^^uid=13264059

使用道具

8
1790605268 学生认证  发表于 2021-9-5 09:27:13 |只看作者 |坛友微信交流群
Python与学术研究系列---第2期.自制熵值法exe程序(无需打开excel复制数据)
https://bbs.pinggu.org/forum.php ... mp;from^^uid=13264059

使用道具

9
1790605268 学生认证  发表于 2021-9-9 19:29:58 |只看作者 |坛友微信交流群
Python与学术研究系列---第3期.一键熵值法2.0_exe(自动标准化+0值处理+结果生成)
https://bbs.pinggu.org/forum.php ... mp;from^^uid=13264059

使用道具

10
1790605268 学生认证  发表于 2021-9-15 22:07:14 来自手机 |只看作者 |坛友微信交流群

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-23 16:32