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。
- Parameters:
- bufstr, Path 或 StringIO-like,可选,默认为 None
写入的缓冲区。如果为 None,则输出作为字符串返回。
- columns标签列表,可选
要写入的列子集。默认写入所有列。
- headerbool or list of str, default True
写出列名。如果给出字符串列表,则假定它们是列名的别名。
- indexbool, default 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, optional
设置为 False 以便具有分层索引的 DataFrame 在每一行打印每个多索引键。默认情况下,该值将从 config 模块读取。
- index_namesbool, default True
打印索引的名称。
- bold_rowsbool,默认 False
使输出中的行标签加粗。
- column_formatbool, default False
按照 LaTeX table format 指定的列格式,例如 ‘rcl’ 代表 3 列。默认情况下,数字列将使用 ‘r’,其他列使用 ‘l’。
- longtablebool, optional
使用 longtable 环境而不是 tabular。需要在 LaTeX 导言区添加 usepackage{{longtable}}。默认情况下,该值将从 pandas 配置模块读取,如果选项
styler.latex.environment设置为 “longtable”,则设置为 True。在 2.0.0 版本发生变更: 影响此参数的 pandas 选项已更改。
- escapebool, optional
默认情况下,该值将从 pandas 配置模块读取,如果选项
styler.format.escape设置为 “latex”,则设置为 True。设置为 False 可防止转义柱名称中的 latex 特殊字符。在 2.0.0 版本发生变更: 影响此参数的 pandas 选项已更改,并且默认值也已更改为 False。
- encodingbool, default False
表示输出文件编码的字符串,默认为 ‘utf-8’。
- decimalstr, 默认为 ‘.’
被识别为十进制分隔符的字符,例如欧洲的 ‘,’。
- multicolumnbool, default 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, default True
使用 multirow 来增强 MultiIndex 行。需要向 LaTeX 导言区添加 usepackage{{multirow}}。将跨包含的行打印居中标签(而不是顶部对齐),通过 clines 分隔组。默认值将从 pandas 配置模块读取,并设置为选项
styler.sparse.index。在 2.0.0 版本发生变更: 影响此参数的 pandas 选项已更改,默认值也改为 True。
- captionstr 或 tuple,可选
元组 (full_caption, short_caption),结果为
\caption[short_caption]{{full_caption}};如果传入单个字符串,则不设置短标题。- labelbool, default False
将放在输出中的
\label{{}}中的 LaTeX 标签。在主.tex文件中使用\ref{{}}进行引用。- positionbool, default False
表格的 LaTeX 位置参数,将放在输出的
\begin{{}}之后。
- Returns:
- str 或 None
如果 buf 为 None,则返回结果作为字符串。否则返回 None。
参见
io.formats.style.Styler.to_latex将 DataFrame 渲染为带条件格式的 LaTeX。
DataFrame.to_string将 DataFrame 渲染成控制台友好的表格输出。
DataFrame.to_html将 DataFrame 渲染为 HTML 表。
Notes
从 v2.0.0 开始,此方法已更改为使用 Styler 实现,作为
Styler.to_latex()的一部分,通过jinja2模板化。这意味着jinja2是必需的,并且需要安装才能使此方法正常工作。建议用户切换到使用 Styler,因为该实现更新更频繁,并且在输出方面具有更大的灵活性。Examples
将通用 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}