module td_2a.serialization
#
Short summary#
module ensae_teaching_cs.td_2a.serialization
Sérialization
Functions#
function |
truncated documentation |
---|---|
Converts a dataframe into a list of lists. |
|
Aggrège plusieurs DataFrame dans un seul fichiers excel |
|
Sérialize un objet dans un stream ou un fichier. |
|
Charge un objet en mémoire après qu’il a été sérialisé. |
Documentation#
Sérialization
- 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’erreurValueError: 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()
- 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" )
- 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.
- 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