Skip to content
This repository has been archived by the owner on Jan 13, 2024. It is now read-only.

Commit

Permalink
ajout de la fonction dfs2excel
Browse files Browse the repository at this point in the history
  • Loading branch information
sdpython committed Sep 20, 2014
1 parent 6d56c2e commit 6f3e4c8
Show file tree
Hide file tree
Showing 4 changed files with 89 additions and 0 deletions.
44 changes: 44 additions & 0 deletions _unittests/ut_td_2a/test_session_pandas.py
@@ -0,0 +1,44 @@
"""
@brief test log(time=1s)
You should indicate a time in seconds. The program ``run_unittests.py``
will sort all test files by increasing time and run them.
"""


import sys, os, unittest, pandas


try :
import src
import pyquickhelper
except ImportError :
path = os.path.normpath(os.path.abspath( os.path.join( os.path.split(__file__)[0], "..", "..")))
if path not in sys.path : sys.path.append (path)
path = os.path.normpath(os.path.abspath( os.path.join( os.path.split(__file__)[0], "..", "..", "..", "pyquickhelper", "src")))
if path not in sys.path : sys.path.append (path)
import src
import pyquickhelper

from pyquickhelper import fLOG
from src.ensae_teaching_cs import dfs2excel


class TestSessionPandas (unittest.TestCase):

def test_excel(self) :
fLOG (__file__, self._testMethodName, OutputPrint = __name__ == "__main__")

df1 = pandas.DataFrame( [ {"name":"xavier", "school":"ENSAE"},
{"name":"antoine", "school":"ENSAE"} ] )

df2 = pandas.DataFrame( [ {"name":"xavier", "company":"Microsoft"},
{"name":"antoine", "company":"Alephd"} ] )

ef = os.path.abspath( os.path.join( os.path.dirname(__file__), "out_example.xlsx"))
if os.path.exists(ef) : os.remove(ef)
dfs2excel ( {"ecole":df1, "boite":df2 }, ef)
assert os.path.exists(ef)

if __name__ == "__main__" :
unittest.main ()
3 changes: 3 additions & 0 deletions src/ensae_teaching_cs/__init__.py
Expand Up @@ -10,3 +10,6 @@
__url__ = "http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx/index.html"
__downloadUrl__ = "http://www.xavierdupre.fr/site2013/index_code.html#ensae_teaching_cs"
__license__ = "BSD License"


from .td_2a.session_pandas import dfs2excel
Empty file.
42 changes: 42 additions & 0 deletions src/ensae_teaching_cs/td_2a/session_pandas.py
@@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
"""
@file
@brief quelques fonctions à propos de la première séance
"""

import pandas

def dfs2excel(dfs:dict, excel_file:str):
"""
Aggrège plusieurs DataFrame dans un seul fichiers excel
@param dfs dictionnaire ``{ feuille: dataframe }``
@param excel_file nom du fichier Excel
@return ExcelWriter
@example(Enregistrer plusieurs DataFrame dans un seul fichier Excel ?)
Le code suivant enregistre deux DataFrame dans un seul fichier Excel.
@code
import pandas
writer = pandas.ExcelWriter('example.xlsx')
df1.to_excel(writer, 'Data 0')
df2.to_excel(writer, 'Data 1')
write.save()
@endcode
Ou en utilisant cette fonction :
@code
@endcode
dfs2excel( { 'Data 0':df1, 'Data 1':df2 }, "example.xlsx" )
@endexample
"""
writer = pandas.ExcelWriter(excel_file)
for k,df in dfs.items():
df.to_excel(writer, k)
writer.save()
return writer


0 comments on commit 6f3e4c8

Please sign in to comment.