pandas.DataFrame.to_latex#

DataFrame.to_latex(buf=None, *, columns=None, header=True, index=True, na_rep='NaN', formatters=None, float_format=None, sparsify=None, index_names=True, bold_rows=False, column_format=None, longtable=None, escape=None, encoding=None, decimal='.', multicolumn=None, multicolumn_format=None, multirow=None, caption=None, label=None, position=None)[源代码]#

将对象渲染为 LaTeX tabular、longtable 或嵌套表。

需要 \usepackage{booktabs}。输出可以直接复制粘贴到主 LaTeX 文档中,或者使用 \input{table.tex} 从外部文件读取。

版本 2.0.0 中已更改: 重构为使用基于 jinja2 模板的 Styler 实现。

参数:
bufstr, Path 或 StringIO-like, 可选, 默认 None

要写入的缓冲区。如果为 None,则输出将作为字符串返回。

columnslabel 列表, 可选

要写入的列的子集。默认情况下写入所有列。

headerbool 或 str 列表, 默认 True

写入列名。如果给定一个字符串列表,则假定它是列名的别名。大括号必须进行转义。

indexbool, 默认 True

写入行名(索引)。

na_repstr, 默认 ‘NaN’

缺失数据表示。

formatters函数列表或 {str: function} 字典, 可选

应用于列元素(按位置或名称)的格式化函数。每个函数的结果必须是 unicode 字符串。列表的长度必须等于列数。

float_format单参数函数或 str, 可选, 默认 None

浮点数的格式化器。例如,float_format="%.2f"float_format="{:0.2f}".format 都将导致 0.1234 被格式化为 0.12。

sparsifybool, 可选

对于具有分层索引的 DataFrame,设置为 False 以在每行打印每个 multiindex 键。默认情况下,该值将从配置模块读取。

index_namesbool, 默认 True

打印索引的名称。

bold_rowsbool, 默认 False

使输出中的行标签加粗。

column_formatstr, optional

列格式如 LaTeX 表格格式 中所述,例如 3 列为 ‘rcl’。默认情况下,所有列(数值列除外)都使用 ‘l’,数值列默认使用 ‘r’。

longtablebool, 可选

使用 longtable 环境而不是 tabular。需要在 LaTeX 导言区添加 usepackage{longtable}。默认情况下,该值将从 pandas 配置模块读取,如果选项 styler.latex.environment“longtable”,则设置为 True

版本 2.0.0 中已更改: 影响此参数的 pandas 选项已更改。

escapebool, 可选

默认情况下,该值将从 pandas 配置模块读取,如果选项 styler.format.escape“latex”,则设置为 True。设置为 False 可防止转义列名中的 latex 特殊字符。

版本 2.0.0 中已更改: 影响此参数的 pandas 选项已更改,默认值也已更改为 False

encodingstr, optional

在输出文件中使用的编码字符串,默认为 ‘utf-8’。

decimalstr, 默认 ‘.’

被识别为小数分隔符的字符,例如欧洲的 ‘,’。

multicolumnbool, 默认 True

使用 multicolumn 增强 MultiIndex 列。默认值将从配置模块读取,并设置为选项 styler.sparse.columns

版本 2.0.0 中已更改: 影响此参数的 pandas 选项已更改。

multicolumn_formatstr, 默认 ‘r’

多列的对齐方式,类似于 column_format。默认值将从配置模块读取,并设置为选项 styler.latex.multicol_align

版本 2.0.0 中已更改: 影响此参数的 pandas 选项已更改,默认值也已更改为 “r”。

multirowbool, 默认 True

使用 multirow 增强 MultiIndex 行。需要将 usepackage{multirow} 添加到 LaTeX 导言区。将跨越包含行的居中标签(而不是顶部对齐),并通过 clines 分隔组。默认值将从 pandas 配置模块读取,并设置为选项 styler.sparse.index

版本 2.0.0 中已更改: 影响此参数的 pandas 选项已更改,默认值也已更改为 True

captionstr 或 tuple, 可选

元组 (full_caption, short_caption),结果为 \caption[short_caption]{full_caption};如果传递单个字符串,则不设置短标题。

labelstr, optional

将放置在输出中 \label{} 中的 LaTeX 标签。这与主 .tex 文件中的 \ref{} 一起使用。

positionstr, optional

将放置在输出的 \begin{} 之后的表的 LaTeX 位置参数。

返回:
str 或 None

如果 buf 为 None,则返回结果作为字符串。否则返回 None。

另请参阅

io.formats.style.Styler.to_latex

渲染 DataFrame 为带有条件格式的 LaTeX。

DataFrame.to_string

将 DataFrame 渲染为控制台友好的表格输出。

DataFrame.to_html

将 DataFrame 渲染为 HTML 表。

注意

自 v2.0.0 起,此方法已更改为使用 Styler 实现,作为 Styler.to_latex() 的一部分,通过 jinja2 模板化。这意味着 jinja2 是一个要求,并且需要安装才能使此方法正常工作。建议用户切换到使用 Styler,因为该实现更新更频繁,并且在输出方面具有更大的灵活性。

示例

将通用 DataFrame 转换为带有格式的 LaTeX

>>> df = pd.DataFrame(dict(name=['Raphael', 'Donatello'],
...                        age=[26, 45],
...                        height=[181.23, 177.65]))
>>> print(df.to_latex(index=False,
...                   formatters={"name": str.upper},
...                   float_format="{:.1f}".format,
...                   ))
\begin{tabular}{lrr}
\toprule
name & age & height \\
\midrule
RAPHAEL & 26 & 181.2 \\
DONATELLO & 45 & 177.7 \\
\bottomrule
\end{tabular}