2 回答

TA贡献1712条经验 获得超3个赞
这是一种使用itertools.groupby()and将数据整理到数据帧中的方法pandas:
from itertools import groupby
import pandas as pd
with open('test.txt', 'r') as f:
chunks = [list(group) for k, group in groupby(f.readlines(), lambda x: x=='\n') if not k]
chunks = [dict([tuple(i.strip().split(': ')) for i in chunk]) for chunk in chunks]
df = pd.DataFrame(chunks).astype(float)
返回:
Accuracy Error Rate Not Classified Total time numIters numSurvivors popSize \
0 96.84 3.16 0.00 5.367 100 0 1000
1 96.84 3.16 0.00 4.472 100 0 1000
2 92.11 7.89 0.00 4.46 100 0 1000
probCrossover probMutation tournamentSize
0 0.9 0.1 10
1 0.9 0.1 10
2 0.9 0.1 10
然后,您可以轻松地计算平均值,如下所示:
df[['Accuracy','Error Rate','Not Classified','Total time']].mean()
返回:
Accuracy 95.263333
Error Rate 4.736667
Not Classified 0.000000
Total time 4.766333
dtype: float64
添加回答
举报