我有一个 pandas dataframe df 看起来像
userid trip_id segmentid actual prediction
1 13 40 3 3
1 6 2 1 1
1 44 3 2 3
2 70 19 1 1
2 12 5 0 0
我需要创建一个按 userid 列分组的摘要数据框 dfsummary,包含三列 userid、correct_classified、incorrect_classified。 如果实际值和预测值相同则分类正确,否则分类错误。
我可以将整个数据帧上的 correct_classfied 算作
correct_classified = submission[(submission['Actual'] == submission['prediction'])]
incorrect_classified = submission[(submission['Actual'] != submission['prediction'])]
但不知道要创建按用户 ID 分组的汇总表,它应该看起来像这样
userid correct_classified incorrect_classified
1 2 1
2 2 0
请您参考如下方法:
您可以使用 pd.crosstab创建条件数组后:
flags = np.where(df['actual'].eq(df['prediction']), 'correct', 'incorrect')
res = pd.crosstab(df['userid'], flags)
print(res)
col_0 correct incorrect
userid
1 2 1
2 2 0
