过年到了,又到了公司年末分级的时候了。今年的等级和平时,每个人都要填写公司的民主评议表,给每个同事打分,部门要根据收集的评价表进行统计,统计数据。收集几十号人的评价表,根据每个人的评价表再次填写到excel中,做出汇总计算统计,试图做出所有人的评价,头就大了。(威廉莎士比亚,《哈姆雷特》,《评价名言》)(威廉莎士比亚,哈姆雷特,《评价名言》)这不是什么难事,但却是一件没有头脑的细致工作。数十人的评价也要花半天的时间,做多了容易出错。如果你想到用Python编写一个自动处理这些肮脏事情的小程序,那么每年都要分级,每年都可以使用。
要做的是读取文件夹中word文档上的评估表单,根据表单内容进行处理,然后加总所有表单数据,根据计算规则计算每个人的分数,根据分数计算每个人的评估。(大卫亚设,Northern Exposure(美国电视剧),评价,评价,评价,评价,评价,评价)汇总后记录在Excel中。
用Python做这种事真的很方便。人生苦短。我用Python。
我用python docx包处理word,用pandas处理数据,并在excel中写
首先,首先导入包
Pip install docx
Pip install pandas
Pandas写excel依赖openpyxl数据包,因此将转到导入
Pip install openpyxl
其次,读取包含审核表单的目录文件
通过python OS软件包列出文件夹中的文件。标识docx文件
Files=os.listdir(文件路径)
For file in files:
If(' .docx')0:
Docfilepah=filepah file
三、读取word文件,处理word中的表单数据
数据=[]
#读取word中的docx评估表单文件,读取word中的表单数据
Def procdoc(docfilepath):
Document=document(文档路径)
Tables=document.tables
Table=tables[0]
For I in range(1,len):
Id=in (I,0)。文本)
Name=(i,1)。text
Excellent=0
If (I,2)。文字!=' and (I,2)。text is not none :
Excellent=1
Competent=0
If (I,3)。文字!=' and (I,3)。text is not none :
Competent=1
Basicacompetent=0
If (I,4)。文字!=' and (I,4)。text is not none :
Basicacompetent=1
Notcompetent=0
If (I,5)。文字!=' and (I,5)。text is not none :
Notcompetent=1
Dontunderstand=0
If (I,6)。文字!=' and (I,6)。text is not none :
Dontunderstand=1
Appraisedata=[id、name、excellent、competent、basica competent、not competent、dont understand]
appraise data(da)
四、统计计算
通过Pandas直接统计数据,避免了传统的循环计算。
Df=(data,columns=[‘序列号’、‘名字’、‘优秀’、‘工作’、‘基本工作’、‘无能’、‘不知道’])
Df=df.groupby(['序列号','名称'])。sum() #汇总每个项目的分数
Df['票数']=df . apply(lamda x 3360 x . sum(),axis=1) #统计票数
Df['分数']=(df['优秀']*95 df['适用性']*85 df['基本适用性']*75 df['不适用性'] * 65df
Df['评估']=df['分数']。根据map(getscore) #规则评估评级
评分方法:民主评议分数=各等级表*等级分数分数/总票数,其中“优秀”为95分,“适任者”为85分,“基本适任者”为75分,“无能者”为65分,“”
#根据评分规则计算分数
Def getscore(x):
If x=95:
比分=“优秀”
Elif x=80和x953360
Score='有效'
Elif x=75和x803360
Score='基本资格'
Elif x75:
Score='无能'
Return score
五、在摘要Excel中写入统计计算结果
可以通过Pandas将dataframe直接写入Excel文件
#将汇总的计算数据写入Excel
Def write 2 excle (excle文件、数据帧):
Writer=(excle文件)
写入程序(Da)
Wri()
Print(“输出成功”)
喜欢的话是称赞、评论、传达~ [笑] [笑]