wake-up-neo.com

Exportieren Sie eine LaTeX-Tabelle aus Pandas DataFrame

Gibt es eine einfache Möglichkeit, einen Datenrahmen (oder einen Teil davon) nach LaTeX zu exportieren? 

Ich habe in Google gesucht und konnte nur mit Hilfe von Asciitables Lösungen finden.

39
PlagTag

DataFrames haben eine to_latex-Methode:

In [42]: df = pd.DataFrame(np.random.random((5, 5)))

In [43]: df
Out[43]: 
          0         1         2         3         4
0  0.886864  0.518538  0.359964  0.167291  0.940414
1  0.834130  0.022920  0.265131  0.059002  0.530584
2  0.648019  0.953043  0.263551  0.595798  0.153969
3  0.207003  0.015721  0.931170  0.045044  0.432870
4  0.039886  0.898780  0.728195  0.112069  0.468485

In [44]: print df.to_latex()
\begin{tabular}{|l|c|c|c|c|c|c|}
\hline
{} &         0 &         1 &         2 &         3 &         4 \\
\hline
0 &  0.886864 &  0.518538 &  0.359964 &  0.167291 &  0.940414 \\
1 &  0.834130 &  0.022920 &  0.265131 &  0.059002 &  0.530584 \\
2 &  0.648019 &  0.953043 &  0.263551 &  0.595798 &  0.153969 \\
3 &  0.207003 &  0.015721 &  0.931170 &  0.045044 &  0.432870 \\
4 &  0.039886 &  0.898780 &  0.728195 &  0.112069 &  0.468485 \\
\hline
\end{tabular}

Sie können dies einfach in eine tex-Datei schreiben.

Standardmäßig wird Latex dies wie folgt darstellen:

as it would appear in latex

Hinweis: Die to_latex-Methode bietet mehrere Konfigurationsoptionen.

68
bmu

Schreiben Sie einfach in eine Textdatei. Es ist keine Zauberei:

import pandas as pd
df = pd.DataFrame({"a":range(10), "b":range(10,20)})
with open("my_table.tex", "w") as f:
    f.write("\\begin{tabular}{" + " | ".join(["c"] * len(df.columns)) + "}\n")
    for i, row in df.iterrows():
        f.write(" & ".join([str(x) for x in row.values]) + " \\\\\n")
    f.write("\\end{tabular}")
5
Thorsten Kranz

Wenn Sie es speichern möchten:

with open('mytable.tex', 'w') as tf:
     tf.write(df.to_latex())
0
Armin Alibasic