python:一张表按照biz、来源、预期这三列排列组合统计,按照这三列去重,统计每个组合的数量,生成一张新的表,按照biz、来源、预期三列排列组合,表头为biz、来源、预期、类型数量、预测正确数、预测错误数、准确率,其中预测正确数为原表中排列组合下预期列等于pre列的数量,预测错误数则为预期列不等于pre列的数量,准确率等于预测正确数/组合数量
时间: 2023-08-16 14:06:26 浏览: 78
你可以使用 pandas 库来完成这个任务。假设原始数据表名为 `data`,包含三列 `biz`、`来源` 和 `预期`,代码如下:
```python
import pandas as pd
# 读取原始数据表
data = pd.read_csv('data.csv')
# 筛选出需要的列并去重
grouped = data[['biz', '来源', '预期']].drop_duplicates()
# 统计每个组合的数量
grouped_count = data.groupby(['biz', '来源', '预期']).size().reset_index(name='类型数量')
# 统计预测正确数和预测错误数
correct_count = data[data['预期'] == data['pre']].groupby(['biz', '来源', '预期']).size().reset_index(name='预测正确数')
error_count = data[data['预期'] != data['pre']].groupby(['biz', '来源', '预期']).size().reset_index(name='预测错误数')
# 合并表格
result = pd.merge(grouped_count, correct_count, how='left', on=['biz', '来源', '预期'])
result = pd.merge(result, error_count, how='left', on=['biz', '来源', '预期'])
# 计算准确率
result['准确率'] = result['预测正确数'] / result['类型数量']
# 输出结果
result.to_csv('result.csv', index=False)
```
这里使用了 `groupby` 和 `merge` 函数来进行分组和合并操作,具体可以参考 pandas 官方文档。最后将结果输出到一个新的表格中。
阅读全文