Python >> Tutoriel Python >  >> Python Tag >> Pandas

comment imprimer une trame de données à partir de pandas en utilisant pylatex

On peut noter que les pandas DataFrames ont déjà un to_latex assez puissant méthode. Une autre approche qui utilise cette méthode et ne réinvente pas la roue serait :

import numpy as np
import pylatex as pl
import pandas as pd

df = pd.DataFrame({'a': [1,2,3], 'b': [9,8,7]})
df.index.name = 'x'

M = np.matrix(df.values)

doc = pl.Document()

doc.packages.append(pl.Package('booktabs'))

with doc.create(pl.Section('Matrix')):
    doc.append(pl.Math(data=[pl.Matrix(M)]))

# Difference to the other answer:
with doc.create(pl.Section('Table')):
    with doc.create(pl.Table(position='htbp')) as table:
        table.add_caption('Test')
        table.append(pl.Command('centering'))
        table.append(pl.NoEscape(df.to_latex(escape=False)))


doc.generate_pdf('full', clean_tex=False)

(Remarque :je n'ai jamais entendu parler de pylatex avant, donc cette réponse est juste basée sur l'examen de l'exemple dans la documentation.)

Cela dépend de ce dont vous avez besoin et de la manière dont vous souhaitez l'imprimer. Le cas le plus simple serait de simplement imprimer les valeurs dans le DataFrame comme matrice. Ou vous pouvez simplement créer une table.

L'exemple ci-dessous génère ceci :

import numpy as np
import pylatex as pl
import pandas as pd

df = pd.DataFrame({'a': [1,2,3], 'b': [9,8,7]})
df.index.name = 'x'

M = np.matrix(df.values)

doc = pl.Document()

with doc.create(pl.Section('Matrix')):
    doc.append(pl.Math(data=[pl.Matrix(M)]))

with doc.create(pl.Section('Table')):
    with doc.create(pl.Tabular('ccc')) as table:
        table.add_hline()
        table.add_row([df.index.name] + list(df.columns))
        table.add_hline()
        for row in df.index:
            table.add_row([row] + list(df.loc[row,:]))
        table.add_hline()


doc.generate_pdf('full', clean_tex=False)