美文网首页
练习|量表分辨力计算

练习|量表分辨力计算

作者: 一个Enchancer | 来源:发表于2017-12-12 17:01 被阅读0次

    用自己最近完成课程作业回收的问卷结果做了一个python的小练习。目的是对问卷中量表的各个问题进行分辨力计算。(分辨力的计算方法:先根据受测对象全体的总分排序;然后取出总分最高的25%的人和总分最低的25%的人,并计算这两部分人在每一条陈述上的平均分;将这两个平均数相减,所得出的就是这一条陈述的分辨力系数。)原文件中前1-6题为基本信息题,第7-21列为量表题目。
    1 首先读入文件。
    import pandas as pd import numpy as np
    2 把量表的部分选出来,即从第6+1列到第21-1+1列
    data=pd.read_csv('path',encoding="gb2312")#这里加上encoding="gb2312"是因为表格中有部分中文内容

    select=data[data.columns[6:21]]
    data.info()  
    

    3 查看select结果如下:


    image.png

    4 根据分辨力的计算方法,写了一个函数(函数中heapq模块中的nlargest和nsmallest函数可以很方便地得到指定最值个数的list,由于是list不能直接计算均值,这里还用了pd.DataFrame对数据格式进行了转换)

    def getper(ds,s):  
        import heapq
        x=range(0,15)
        for i in x:
            maxn=pd.DataFrame(heapq.nlargest(len(s)/4,s[s.columns[i]])).mean()
            minn=pd.DataFrame(heapq.nsmallest(len(s)/4,s[s.columns[i]])).mean()
            ds[i+6]=maxn-minn
        return ds
    

    ds=pd.DataFrame() ds=getper(ds,select) ds
    结果:

    image.png

    将ds转置后排序
    ds2=ds.T ds2.sort(0) #这样做是因为我暂时不知道怎么直接对某一行进行排序...查了好多暂时没有查到 ..方法待补充
    得到结果如下,分辨力从低到高:

    image.png

    相关文章

      网友评论

          本文标题:练习|量表分辨力计算

          本文链接:https://www.haomeiwen.com/subject/nmlnixtx.html