to_latex()输出被截断

2024-09-29 20:20:33 发布

您现在位置:Python中文网/ 问答频道 /正文

问题:我试图使用^{}pandas.DataFrame导出到LaTex

但是,长值(在我的例子中是长字符串)的输出会被截断

复制步骤:

import pandas as pd 
df = pd.DataFrame(['veryLongString' * i for i in range(1, 5)], dtype='string')
print(df.to_latex())

输出:

\begin{tabular}{ll}
\toprule
{} &                                                  0 \\
\midrule
0 &                                     veryLongString \\
1 &                       veryLongStringveryLongString \\
2 &         veryLongStringveryLongStringveryLongString \\
3 &  veryLongStringveryLongStringveryLongStringvery... \\
\bottomrule
\end{tabular}

如您所见,最后一行被截断(使用...)。 我已经尝试使用col_space参数,但这并没有像预期的那样改变行为。 它只是按如下方式移动表格单元格:

\begin{tabular}{ll}
\toprule
{} &                                                            0 \\
\midrule
0                                                  &                                     veryLongString \\
1                                                  &                       veryLongStringveryLongString \\
2                                                  &         veryLongStringveryLongStringveryLongString \\
3                                                  &  veryLongStringveryLongStringveryLongStringvery... \\
\bottomrule
\end{tabular}
 

如何将数据帧的完整内容导出到Latex


Tags: dataframepandasdfendpdllbegintabular
2条回答

在花了一些时间从to_latex()尝试其他参数以及其他导出选项(例如to_csv())之后,我确信这不是to_latex()的问题

我在pandas文档中找到了解决方案:

enter image description here

因此,解决方案是将此选项设置为None,以不限制输出(全局)

pd.set_option('display.max_colwidth', None)

资料来源:https://pandas.pydata.org/pandas-docs/stable/user_guide/options.html

您可以使用with语句调用context manager,临时更改最大列宽:

with pd.option_context("max_colwidth", 1000):
    print (df.to_latex())

输出:

\begin{tabular}{ll}
\toprule
{} &                                                         0 \\
\midrule
0 &                                            veryLongString \\
1 &                              veryLongStringveryLongString \\
2 &                veryLongStringveryLongStringveryLongString \\
3 &  veryLongStringveryLongStringveryLongStringveryLongString \\
\bottomrule
\end{tabular}

这种行为也被描述为here

相关问题 更多 >

    热门问题