Сохранение результатов DEAP в кадре данных pandas

Некоторое время использую пакет DEAP для генетического алгоритма.

Я знаю рутину и получаю некоторые достоверные результаты.

Но я хочу знать вариации функции пригодности среди населения.

С помощью функции stats я могу вывести среднее значение, стандартное значение и т. д. в качестве вывода.

В руководстве сказано, что для сохранения результатов используется журнал. Я этому не научился и не знаком с рассолом.

Есть ли способ сохранить результат в формате .csv или excel напрямую?


person Han Zhengzu    schedule 20.03.2017    source источник


Ответы (2)


Журнал представляет собой список словарей, поэтому вам необходимо «перенести» эти данные в словарь списков.

Вот как я сделал это для бортового журнала с мультистатистикой с использованием панд.

import pandas as pd
from functools import reduce
from operator import add, itemgetter

chapter_keys = logbook.chapters.keys()
sub_chaper_keys = [c[0].keys() for c in logbook.chapters.values()]

data = [list(map(itemgetter(*skey), chapter)) for skey, chapter 
             in zip(sub_chaper_keys, logbook.chapters.values())]
data = np.array([[*a, *b] for a, b in zip(*data)])

columns = reduce(add, [["_".join([x, y]) for y in s] 
                       for x, s in zip(chapter_keys, sub_chaper_keys)])
df = pd.DataFrame(data, columns=columns)

keys = logbook[0].keys()
data = [[d[k] for d in logbook] for k in keys]
for d, k in zip(data, keys):
    df[k] = d

Сначала я разбираю статистику в массив и создаю фрейм данных. Во-вторых, я добавляю столбцы, которые не основаны на статистике (например, gen или evals), в качестве столбца в мой df. Вы можете экспортировать кадр данных в csv, используя df.to_csv.

person Ohjeah    schedule 20.03.2017

Чтобы преобразовать одну статистику (без глав) в фрейм данных Pandas, используйте этот

data = [[i for i in item.values()] for item in log]
df = pd.DataFrame(data, columns=log.header)
print(df)

потому что данные находятся в самом объекте бортового журнала.

person NelisW    schedule 12.06.2019