Esiste un modo semplice per esportare un data frame (o anche una parte di esso) su LaTeX?Esportare una tabella LaTeX da panda DataFrame
Ho cercato in google e sono stato in grado di trovare solo soluzioni usando asciitable.
Esiste un modo semplice per esportare un data frame (o anche una parte di esso) su LaTeX?Esportare una tabella LaTeX da panda DataFrame
Ho cercato in google e sono stato in grado di trovare solo soluzioni usando asciitable.
DataFrames hanno un metodo to_latex
:
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}
Si può semplicemente scrivere questo in un file tex.
Per impostazione predefinita lattice renderà questo come:
Nota: il metodo to_latex
offre diverse opzioni di configurazione.
@hayden grazie per la tua modifica – bmu
thx, che ha funzionato! Ho solo dovuto aggiornare i miei panda, – PlagTag
, 'to_latex()' supporta il multiindicizzazione? – TheChymera
Basta scrivere su un file di testo. E 'nessuna magia:
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}")
Sebbene sia utile mostrare quanto sia facile esportare i dati tabulari in LaTeX usando semplicemente Python, è ovviamente molto meglio usare le strutture esistenti, ad esempio 'DataFrame.to_latex()' in questo caso. –
Ciao, sono assolutamente d'accordo. Le mie ragioni sono state: 1. Ho iniziato con i panda prima della versione 0.9, dove to_latex non era disponibile 2. Questo potrebbe essere utile quando è necessaria qualche regolazione o qualcuno vuole esportare in un altro formato, ad esempio, XAML, XML personalizzato o qualsiasi altra cosa . Ma grazie per il tuo commento –
Oltre alle risposte qui, anche questa domanda ha un approccio interessante. Esportare in csv e quindi importare il csv in latex: http://tex.stackexchange.com/questions/54990/convert-numpy-array-into-tabular –