how to print a data frame from pandas using pylatex
It might be noted, that pandas DataFrames already have a quite powerful to_latex
method. Another approach that makes use of this method and does not reinvent the wheel would be:
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)
(Note: I've never heard of pylatex
before, so this answer is just based on looking at the example in the documentation.)
Depends on what you need, and how you want to print it. The simplest case would be to just print the values in the DataFrame
as a matrix. Or you could just build a table.
The example below generates this:
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)