如何使用 pylatex 从 pandas 打印数据框

如何使用 pylatex 从 pandas 打印数据框

我有一个 PandasDataFrame对象。

我想用 将其打印为 PDF 文件pylatex。我应该怎么做?

答案1

(注意:我以前从未听说过pylatex,所以这个答案只是基于查看文档中的示例。)

取决于您需要什么以及您想如何打印它。最简单的情况是仅将DataFrame矩阵中的值打印出来。或者您可以只建立一个表格。

下面的示例生成了此内容:

在此处输入图片描述

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)

答案2

值得注意的是,pandas DataFrames 已经有一个非常强大的to_latex方法。另一种利用此方法且不重新发明轮子的方法是:

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)

相关内容