在过去,我经常通过pandas数据帧计算条件语句,该数据帧将Y/N返回到1/0,然后计算并获得分数。不过,我想学习一种高级方法,用列表中较大的数据集实现计算
这是我的密码:
a=[234,45,57]
b=[26,51,59]
c=[87,23,56]
avrg_score = [['A',a[0]>0],
['B',b[0]>0],
['C',b[0]>0],
['C',a[0]*b[0]>c[0]],]
avrg_score = pd.DataFrame(avrg_score, columns=['Figure','Pass'],dtype=float).round(3)
x=avrg_score.Figure.count()
y=avrg_score.Pass.sum()
avrg_score_result=(x/y)*100
输出:
100
但是这是针对3个列表(a、b、c)的索引[0]
,但是我需要手动为列表的其余索引执行此操作
如何为给定列表的所有索引自动执行
当我在完整列表中使用这种格式时:
avrg_score = [['A',a>0],
['B',b>0],
['C',b>0],
['C',a*b>c]]
我得到这样的错误:
'>' not supported between instances of 'list' and 'int'
非常感谢您的帮助
这是你期待的吗?我假设列表ID A、B、C将是“Pass_1”、“Pass_2”和“Pass_3”这3个列表项的数据帧索引和列
输出:
但是请记住,print_this函数
getname()
检查局部变量,在处理大型列表时可能会花费高昂的成本。相反,我将列表名/数据帧索引名作为字符串列表,并在循环中使用它相关问题 更多 >
编程相关推荐