【发布时间】:2020-06-18 10:18:58
【问题描述】:
过去我曾经通过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'
不胜感激。
【问题讨论】:
-
DataFrame 中所有索引的列是什么?我假设列表 ID A、B、C 将成为 DataFrame 索引
-
我相信标记的问题涵盖了您尝试实施的原则。这包含在许多 PANDAS 教程中,但这个序列比您目前可能想要的更远。