[[' precision recall f1-score support 0 0.90 0.91 0.91 10762 1 0.85 0.91 0.88 9339 2 0.85 0.42 0.56 1628 micro avg 0.88 0.88 0.88 21729 macro avg 0.87 0.75 0.78 21729weighted avg 0.88 0.88 0.87 21729 samples avg 0.88 0.88 0.88 21729'], [' precision recall f1-score support 0 0.92 0.91 0.91 10762 1 0.85 0.92 0.89 9339 2 0.87 0.46 0.60 1628 micro avg 0.88 0.88 0.88 21729 macro avg 0.88 0.77 0.80 21729weighted avg 0.89 0.88 0.88 21729 samples avg 0.88 0.88 0.88 21729']] 怎么求上述列表中每个表加和取平均值得到一个形式不变的新表
时间: 2024-02-10 18:08:13 浏览: 50
acc.m.zip_ACC图像分割_F1-score_Score!_acc.m_图像召回率
5星 · 资源好评率100%
可以使用 Python 中的 pandas 库来操作这个列表,具体操作如下:
1. 引入 pandas 库
``` python
import pandas pd
```
2. 将列表转换成 DataFrame 格式,并设置列名
``` python
df = pd.DataFrame(data=lst, columns=['classification_report'])
```
3. 将 classification_report 列按空格拆分成多列,并删除第一列
``` python
df = pd.concat([df, df['classification_report'].str.split(expand=True)], axis=1)
df = df.drop(columns=[0])
```
4. 将每个数值列转换为浮点型
``` python
cols = df.columns[1:]
df[cols] = df[cols].astype(float)
```
5. 按照分类指标(precision、recall、f1-score)进行分组,求每组的平均值
``` python
grouped = df.groupby(by=[1])
result = grouped.mean().reset_index()
```
最终的结果 result 是一个 DataFrame,每行代表一个分类指标,每列代表一个分类,其中值为平均值。
阅读全文