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.

dfs2excel

Aggrège plusieurs DataFrame dans un seul fichiers excel

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)#

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.dfs2excel(dfs: dict, excel_file: str)#

Aggrège plusieurs DataFrame dans un seul fichiers excel

Paramètres:
  • dfs – dictionnaire { feuille: dataframe }

  • excel_file – nom du fichier Excel

Renvoie:

ExcelWriter

Enregistrer plusieurs DataFrame dans un seul fichier Excel ?

Le code suivant enregistre deux DataFrame dans un seul fichier Excel.

import pandas
writer = pandas.ExcelWriter('example.xlsx')
df1.to_excel(writer, 'Data 0')
df2.to_excel(writer, 'Data 1')
write.save()

Ou en utilisant cette fonction :

dfs2excel( { 'Data 0':df1, 'Data 1':df2 }, "example.xlsx" )

Enregistrer plusieurs DataFrame dans un seul fichier Excel ?

Le code suivant enregistre deux DataFrame dans un seul fichier Excel.

import pandas
writer = pandas.ExcelWriter('example.xlsx')
df1.to_excel(writer, 'Data 0')
df2.to_excel(writer, 'Data 1')
write.save()

Ou en utilisant cette fonction :

dfs2excel( { 'Data 0':df1, 'Data 1':df2 }, "example.xlsx" )

source on GitHub

ensae_teaching_cs.td_2a.serialization.dump_object(obj, filename_or_stream)#

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)#

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