首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pandas中DataFrame中的成对Cohen行数(python)

Pandas中DataFrame中的成对Cohen行数(python)
EN

Stack Overflow用户
提问于 2021-07-13 16:56:34
回答 1查看 87关注 0票数 2

我非常感谢在这方面的一些帮助。我用的是jupyter笔记本。

我有一个数据框架,我想在其中计算评分者之间的可靠性。我想通过ID列的值对它们进行成对比较(所有ID的频率都是2,每个编码器一个)。所有的ID值代表不同的文章,所以我不想把它们全部比较在一起,但更多的是取每对评价者之间的可靠性的平均值(也可能是每个专栏的平均值)。

代码语言:javascript
复制
N.  ID.     A.  B.      
0   8818313 Yes Yes     1.0 1.0 1.0 1.0 1.0 1.0
1   8818313 Yes No      0.0 1.0 0.0 0.0 1.0 1.0 
2   8820105 No  Yes     0.0 1.0 1.0 1.0 1.0 1.0 
3   8820106 No  No      0.0 0.0 0.0 1.0 0.0 0.0 

我已经能够找到cohen's k的一些说明,但无法在ID列中找到如何按值成对执行此操作的说明。

有人知道该怎么做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-13 17:13:05

下面是我将如何处理它:

代码语言:javascript
复制
from io import StringIO
from sklearn.metrics import cohen_kappa_score

df = pd.read_csv(StringIO("""
N,ID,A,B,Nums
0,   8818313, Yes, Yes,1.0 1.0 1.0 1.0 1.0 1.0
1,   8818313, Yes, No,0.0 1.0 0.0 0.0 1.0 1.0 
2,   8820105, No,  Yes,0.0 1.0 1.0 1.0 1.0 1.0 
3,   8820105, No,  No,0.0 0.0 0.0 1.0 0.0 0.0 """))


def kappa(df):
    nums1 = [float(num) for num in df.Nums.iloc[0].split(' ') if num]
    nums2 = [float(num) for num in df.Nums.iloc[1].split(' ') if num]
    return cohen_kappa_score(nums1, nums2)

df.groupby('ID').apply(kappa)

这将生成:

代码语言:javascript
复制
ID
8818313    0.000000
8820105    0.076923
dtype: float64
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68359385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档