Pandas df.to_latex() 输出被截断

J.S*_*der 8 python export pandas

问题:我尝试pandas.DataFrame使用将 a 导出到 LaTex .to_latex()

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

重现步骤:

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

输出:

\begin{tabular}{ll}
\toprule
{} &                                                  0 \\
\midrule
0 &                                     veryLongString \\
1 &                       veryLongStringveryLongString \\
2 &         veryLongStringveryLongStringveryLongString \\
3 &  veryLongStringveryLongStringveryLongStringvery... \\
\bottomrule
\end{tabular}
Run Code Online (Sandbox Code Playgroud)

如您所见,最后一行被截断(带有...)。我已经尝试使用该col_space参数,但这不会改变预期的行为。它只是简单地移动表格单元格,如下所示:

\begin{tabular}{ll}
\toprule
{} &                                                            0 \\
\midrule
0                                                  &                                     veryLongString \\
1                                                  &                       veryLongStringveryLongString \\
2                                                  &         veryLongStringveryLongStringveryLongString \\
3                                                  &  veryLongStringveryLongStringveryLongStringvery... \\
\bottomrule
\end{tabular}
 
Run Code Online (Sandbox Code Playgroud)

如何获取导出到 Latex 的 DataFrame 的完整内容?

San*_*uhh 10

您可以使用语句调用上下文管理器with来临时更改最大列宽:

with pd.option_context("max_colwidth", 1000):
    print (df.to_latex())
Run Code Online (Sandbox Code Playgroud)

输出:

\begin{tabular}{ll}
\toprule
{} &                                                         0 \\
\midrule
0 &                                            veryLongString \\
1 &                              veryLongStringveryLongString \\
2 &                veryLongStringveryLongStringveryLongString \\
3 &  veryLongStringveryLongStringveryLongStringveryLongString \\
\bottomrule
\end{tabular}
Run Code Online (Sandbox Code Playgroud)

此处也描述了此行为。

  • 临时更改此选项是多么有用的替代方案。 (2认同)