How to get rid of extra slashes in pandas to_latex function?
Question:
I am trying to convert pandas data frame to latex format but it’s returning extra slashes in the output.
Data
df = pd.DataFrame({'model_name': {0: 'ALBERT', 1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}, 'macro_precision_first': {0: 91.89396817624747, 1: 92.17133890858452, 2: 92.6826295632407, 3: 92.80299948526579, 4: 93.34410168004217, 5: 92.0346638078341}, 'macro_recall_first': {0: 92.2318448502444, 1: 92.3357692328841, 2: 93.0292033013862, 3: 93.12015088280738, 4: 93.66748596470968, 5: 92.36958589707638}, 'macro_f1_first': {0: 91.95372391665576, 1: 92.23312713937592, 2: 92.71221623765801, 3: 92.88621653320901, 4: 93.43123707996612, 5: 92.1035266749227}})
When I am trying df.to_latex()
, the output looks like this:
'\begin{tabular}{llrrr}n\toprulen{} & model\_name & macro\_precision\_first & macro\_recall\_first & macro\_f1\_first \\n\midrulen0 & ALBERT & 91.89 & 92.23 & 91.95 \\n1 & a & 92.17 & 92.34 & 92.23 \\n2 & b & 92.68 & 93.03 & 92.71 \\n3 & c & 92.80 & 93.12 & 92.89 \\n4 & d & 93.34 & 93.67 & 93.43 \\n5 & e & 92.03 & 92.37 & 92.10 \\n\bottomrulen\end{tabular}n'
What I am expecting is the rows like this:
ALBERT & 91.89 & 92.23 & 91.95 \
a & 92.17 & 92.34 & 92.23 \
b & 92.68 & 93.03 & 92.71 \
c & 92.80 & 93.12 & 92.89 \
d & 93.34 & 93.67 & 93.43 \
e & 92.03 & 92.37 & 92.10 \
How I can get rid of extra slashes and \n
?
Answers:
The slashes are escape characters in the string. They are not really present. Try to print:
print(df.to_latex())
output:
begin{tabular}{llrrr}
toprule
{} & model_name & macro_precision_first & macro_recall_first & macro_f1_first \
midrule
0 & ALBERT & 91.893968 & 92.231845 & 91.953724 \
1 & a & 92.171339 & 92.335769 & 92.233127 \
2 & b & 92.682630 & 93.029203 & 92.712216 \
3 & c & 92.802999 & 93.120151 & 92.886217 \
4 & d & 93.344102 & 93.667486 & 93.431237 \
5 & e & 92.034664 & 92.369586 & 92.103527 \
bottomrule
end{tabular}
I am trying to convert pandas data frame to latex format but it’s returning extra slashes in the output.
Data
df = pd.DataFrame({'model_name': {0: 'ALBERT', 1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}, 'macro_precision_first': {0: 91.89396817624747, 1: 92.17133890858452, 2: 92.6826295632407, 3: 92.80299948526579, 4: 93.34410168004217, 5: 92.0346638078341}, 'macro_recall_first': {0: 92.2318448502444, 1: 92.3357692328841, 2: 93.0292033013862, 3: 93.12015088280738, 4: 93.66748596470968, 5: 92.36958589707638}, 'macro_f1_first': {0: 91.95372391665576, 1: 92.23312713937592, 2: 92.71221623765801, 3: 92.88621653320901, 4: 93.43123707996612, 5: 92.1035266749227}})
When I am trying df.to_latex()
, the output looks like this:
'\begin{tabular}{llrrr}n\toprulen{} & model\_name & macro\_precision\_first & macro\_recall\_first & macro\_f1\_first \\n\midrulen0 & ALBERT & 91.89 & 92.23 & 91.95 \\n1 & a & 92.17 & 92.34 & 92.23 \\n2 & b & 92.68 & 93.03 & 92.71 \\n3 & c & 92.80 & 93.12 & 92.89 \\n4 & d & 93.34 & 93.67 & 93.43 \\n5 & e & 92.03 & 92.37 & 92.10 \\n\bottomrulen\end{tabular}n'
What I am expecting is the rows like this:
ALBERT & 91.89 & 92.23 & 91.95 \
a & 92.17 & 92.34 & 92.23 \
b & 92.68 & 93.03 & 92.71 \
c & 92.80 & 93.12 & 92.89 \
d & 93.34 & 93.67 & 93.43 \
e & 92.03 & 92.37 & 92.10 \
How I can get rid of extra slashes and \n
?
The slashes are escape characters in the string. They are not really present. Try to print:
print(df.to_latex())
output:
begin{tabular}{llrrr}
toprule
{} & model_name & macro_precision_first & macro_recall_first & macro_f1_first \
midrule
0 & ALBERT & 91.893968 & 92.231845 & 91.953724 \
1 & a & 92.171339 & 92.335769 & 92.233127 \
2 & b & 92.682630 & 93.029203 & 92.712216 \
3 & c & 92.802999 & 93.120151 & 92.886217 \
4 & d & 93.344102 & 93.667486 & 93.431237 \
5 & e & 92.034664 & 92.369586 & 92.103527 \
bottomrule
end{tabular}