module td_2a.serialization

Short summary

module ensae_teaching_cs.td_2a.serialization

Sérialization

source on GitHub

Functions

function truncated documentation
df2list Converts a dataframe into a list of lists.
dump_object Sérialize un objet dans un stream ou un fichier.
load_object Charge un objet en mémoire après qu’il a été sérialisé.

Documentation

Sérialization

source on GitHub

ensae_teaching_cs.td_2a.serialization.df2list(df)[source]

Converts a dataframe into a list of lists.

Paramètres:df – DataFrame
Renvoie:list of lists
df = DataFrame( ... )
l  = df.values.tolist()

Comment vérifier que deux DataFrame sont égaux (2) ?

Comparer deux DataFrame avec l’opérateur == ne fonctionne pas. On obtient un message d’erreur

ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

Il faut au préalable convertir le Dataframe en le convertissant en liste

df.values.tolist() == df2.values.tolist()

source on GitHub

ensae_teaching_cs.td_2a.serialization.dump_object(obj, filename_or_stream)[source]

Sérialize un objet dans un stream ou un fichier.

Paramètres:
  • obj – objet à sérialiser
  • filename_or_stream – nom de fichier ou stream

Comment gagner du temps lors de la lecture de données ?

Les languages informatiques définissent des structures de données qui permettent une utilisation rapide et cela n’a souvent rien à voir avec la façon dont on lit ces données. La plupart des données apparaissent dans des fichiers texte ou fichiers plat. Pour les utiliser, le programme les charges en mémoires ce qui peut prendre du temps. La première fois qu’on s’en sert, c’st inévitable. La seconde fois, on peut stocker les données telles qu’elles sont en mémoire. Le second chargement est plus rapide.

obj = ... # n'importe quoi de sérialisable
dump_object(obj, "object_sur_disque.bin")

Pour recharger les données, on écrit :

obj = load_object("object_sur_disque.bin")

Le code de ces deux fonctions fait intervenir le module pickle. Il suffit pour la plupart des usages. Pour un usage plus exotique, il faut voir le module dill.

source on GitHub

ensae_teaching_cs.td_2a.serialization.load_object(filename_or_stream)[source]

Charge un objet en mémoire après qu’il a été sérialisé.

Paramètres:filename_or_stream – nom de fichier ou stream
Renvoie:objet

source on GitHub