单次操作加载数据和平均值

我正在尝试将如下所示表单的数据加载到数据框中。


popSize: 1000

numSurvivors: 0

tournamentSize: 10

probMutation: 0.1

probCrossover: 0.9

numIters: 100

Accuracy: 96.84 

Error Rate: 3.16 

Not Classified: 0.00

Total time: 5.367


popSize: 1000

numSurvivors: 0

tournamentSize: 10

probMutation: 0.1

probCrossover: 0.9

numIters: 100

Accuracy: 96.84 

Error Rate: 3.16 

Not Classified: 0.00

Total time: 4.472


popSize: 1000

numSurvivors: 0

tournamentSize: 10

probMutation: 0.1

probCrossover: 0.9

numIters: 100

Accuracy: 92.11 

Error Rate: 7.89 

Not Classified: 0.00

Total time: 4.46

数据代表算法的多次执行。有没有办法将这些数据作为单行加载,使用最后 4 个值的平均结果?


沧海一幻觉
浏览 191回答 2
2回答

交互式爱情

这是一种使用itertools.groupby()and将数据整理到数据帧中的方法pandas:from itertools import groupbyimport pandas as pdwith 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.263333Error Rate         4.736667Not Classified     0.000000Total time         4.766333dtype: float64
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python