【发布时间】:2018-04-23 04:10:28
【问题描述】:
尝试编写一个函数来求解给定两个单独的 Pandas DataFrame 的曲线下面积。正如 print 语句所证实的那样,DataFrame 的列已正确解包,但是,我无法从单独的帧中创建新的 Dataframe 或引用 fpr 数据帧的特定索引来进行计算。
def areaUnderCurve(tpr, fpr):
auc = 0.0
for fpr, tpr in zip(tpr['True Positive Rate'], fpr['False Positive Rate']):
auc += np.trapz(y=fpr['False Positive Rate'], x=tpr['True Positive Rate'])
return auc
calcAUC = areaUnderCurve(dataframe, dataframe)
print(calcAUC)
打印语句的示例输出:
0 1.0 0.94
1 1.0 0.8866666666666667
2 1.0 0.8133333333333334
3 1.0 0.7866666666666666
4 1.0 0.78
5 1.0 0.6533333333333333
6 1.0 0.6333333333333333
7 1.0 0.6266666666666667
8 1.0 0.6133333333333333
9 1.0 0.6
***更新代码尝试根据答案计算 AUC,收到以下错误“float object is not subscriptable”
【问题讨论】:
标签: python pandas dataframe auc