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 表格、长表格或嵌套表格。
需要
\usepackage{{booktabs}}
。输出可以复制/粘贴到主 LaTeX 文档中,或使用\input{{table.tex}}
从外部文件读取。在 2.0.0 版本发生变更: 重构以通过 jinja2 模板使用 Styler 实现。
- 参数:
- bufstr, Path 或 StringIO-like, 可选, 默认 None
要写入的缓冲区。如果为 None,则输出作为字符串返回。
- 列标签列表,可选
要写入的列的子集。默认情况下写入所有列。
- 标题bool 或 str 列表, 默认 True
写出列名。如果给定一个字符串列表,则假定它们是列名的别名。
- 索引布尔值, 默认为 True
写入行名(索引)。
- na_repstr, 默认 ‘NaN’
缺失数据表示。
- 格式化器函数列表或 {{str: 函数}} 的字典,可选
按位置或名称应用于列元素的格式化函数。每个函数的结果必须是unicode字符串。列表的长度必须等于列的数量。
- float_format单参数函数或字符串,可选,默认无
浮点数格式化器。例如
float_format="%.2f"
和float_format="{{:0.2f}}".format
都会将 0.1234 格式化为 0.12。- sparsifybool, 可选
设置为 False 以打印具有分层索引的 DataFrame,每行打印每个多索引键。默认情况下,该值将从配置模块中读取。
- index_names布尔值, 默认为 True
打印索引的名称。
- bold_rowsbool, 默认 False
在输出中将行标签加粗。
- column_formatstr, 可选
列的格式按照 LaTeX 表格格式 指定,例如 ‘rcl’ 表示 3 列。默认情况下,所有列将使用 ‘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。
- 编码str, 可选
一个表示要在输出文件中使用的编码的字符串,默认为 ‘utf-8’。
- decimalstr, 默认 ‘.’
被识别为小数分隔符的字符,例如欧洲的 ‘,’。
- multicolumn布尔值, 默认为 True
使用 multicolumn 来增强 MultiIndex 列。默认值将从配置模块中读取,并设置为选项
styler.sparse.columns
。在 2.0.0 版本发生变更: 影响此参数的 pandas 选项已更改。
- multicolumn_formatstr, 默认 ‘r’
多列的对齐方式,类似于 column_format。默认值将从配置模块中读取,并设置为选项
styler.latex.multicol_align
。在 2.0.0 版本发生变更: 影响此参数的 pandas 选项已更改,默认值也已更改为 “r”。
- multirow布尔值, 默认为 True
使用 multirow 增强 MultiIndex 行。需要在 LaTeX 导言区添加 usepackage{{multirow}}。将通过 clines 分隔组,打印居中标签(而不是顶部对齐)。默认值将从 pandas 配置模块读取,并设置为选项
styler.sparse.index
。在 2.0.0 版本发生变更: 影响此参数的 pandas 选项已更改,默认值也已更改为 True。
- 标题str 或 tuple,可选
元组 (full_caption, short_caption),结果为
\caption[short_caption]{{full_caption}}
;如果传递单个字符串,则不会设置短标题。- 标签str, 可选
The LaTeX label to be placed inside
\label{{}}
in the output. This is used with\ref{{}}
in the main.tex
file.- 位置str, 可选
LaTeX 中用于表格的位置参数,应放在输出中的
\begin{{}}
之后。
- 返回:
- 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.to_latex()
一部分的 Styler 实现,通过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}