Le journal de bord est une liste de dictionnaires, vous devez donc "transposer" ces données dans un dictionnaire de listes.
Voici comment j'ai procédé pour un journal de bord avec des statistiques multiples en utilisant pandas.
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
Tout d'abord, j'analyse les statistiques dans un tableau et je crée un cadre de données. Ensuite, j'ajoute les colonnes qui ne sont pas basées sur une statistique (c'est-à-dire gen ou evals) en tant que colonne à mon df. Vous pouvez exporter le cadre de données au format csv en utilisant la fonction df.to_csv
.