如何更改python pandas LaTeX输出格式?

时间:2016-09-07 16:22:51

标签: python pandas latex

我试图更好地格式化我的pandas数据帧输出。

我有一个系列,然后我将其转换为数据帧然后输出到LaTeX。

meal.to_frame().to_latex('meal.tex')

这会产生:

 \begin{tabular}{lr}
 \toprule
 {} &  count \\
 \midrule
 Meal    &        \\
 Spam    &  11723 \\
 Eggs    &   5865 \\
 \bottomrule
 \end{tabular}

如何将\toprule\midrule\bottomrule更改为\hline。 我如何才能将索引名称model的名称显示为列标题?我要找的最终结果是:

 \begin{tabular}{lr}
 \hline
 Meal    &  count \\
 \hline
 Spam    &  11723 \\
 Eggs    &   5865 \\
 \hline
 \end{tabular}

2 个答案:

答案 0 :(得分:0)

您可以尝试使用制表https://pypi.python.org/pypi/tabulate。 我一直用它来做我的Python项目。你有两种不同的LaTeX风格。但它的输出只是一个包含LaTeX代码的字符串,因此您总是可以使用自定义函数来替换某些部分。

如果这不起作用,请尝试除to_frame方法之外的其他方法。您可以使用as_matrix()获取数据,添加标签并从那里开始。

对于真正的自定义样式,您需要编写一个简单的脚本来自己构建字符串。

答案 1 :(得分:0)

to_frame()的输出是一个字符串,因此您可以将\toprule\midrule\bottomrule替换为\hline

print(df.to_latex(index=False).replace('\\toprule', '\\hline').replace('\\midrule', '\\hline').replace('\\bottomrule','\\hline'))

(假设df是您的pandas数据帧)

设置index=False将删除第一个示例标题中的奇数{}