pythonpandaslatex

pandas to_latex() escapes mathmode


pandas to_latex() seems to be a convenient way to convert bigger tabulars into latex code. However, writing math mode, the $ seems to get escaped.

An example:

import pandas as pd
import numpy as np

table=np.asarray([['$x^2$',3]])
df=pd.DataFrame(table[:,1], columns=['value'], index=table[:,0])
print(df.to_latex(encoding='utf-8'))

output:

\begin{tabular}{ll}
\toprule
{} & value \\
\midrule
\$x\textasciicircum2\$ &     3 \\
\bottomrule
\end{tabular}

Is there a way to prevent this from happening?


Solution

  • Yes, the method's escape parameter is set to True by default. You can change it to False:

    print(df.to_latex(encoding='utf-8', escape=False))
    
    \begin{tabular}{ll}
    \toprule
    {} & value \\
    \midrule
    $x^2$ &     3 \\
    \bottomrule
    \end{tabular}