我有这样一个数据帧:
right_answer rater1 rater2 rater3 item
1 1 1 2 S01
1 1 2 2 S02
2 1 2 1 S03
2 2 1 2 S04
我需要得到“项目”中的行或值,其中至少有三分之二的评分者给出了错误的答案。我已经可以检查所有评分员是否同意此代码:
df.where(df[['rater1', 'rater2', 'rater3']].eq(df.iloc[:, 0], axis=0).all(1) == True)
我不想计算一个有多数票的专栏,因为也许我需要调整那些同意或不同意正确答案的评分者的数量
谢谢你的帮助
使用^{} 过滤包含} 沿} 沿} 创建布尔掩码,最后使用此筛选数据框行
rater
等列的数据框,然后使用^{axis=0
比较包含rater
的列与right_answer
列,然后使用^{axis=1
获取给出错误答案的raters
数,然后使用^{mask
:结果:
为了提高速度,纯粹使用^{} :
让我们计时吧强>
numpy broadcasting
快了296 / 92.5 = 3.2
倍相关问题 更多 >
编程相关推荐