2013-02-25 13 views
11

Przeczytałem metodę about the to_latex, ale nie jest jasne, jak używać , jak używać argumentu formatters.Formatowanie wyjścia latex (to_latex)

Mam kilka numerów, które są zbyt długo i niektóre, które chcę tysięcy separatory.

Boczna issue dla metody to_latex na stołach wielu indeksowane, indeksy są przetwarzane razem i to wydaje jakieś & s na wyjściu lateksowej.

+0

Z poniższej odpowiedzi można wyszukiwać funkcje formatowania Pythona (zbyt długo już wspomniano i być może zobacz [tutaj dla tysięcy separatorów] (http://stackoverflow.com/q/1823058/1240268)). –

Odpowiedz

19

Dla prostej ramki danych. Po pierwsze, bez formatujących:

In [11]: df 
Out[11]: 
       c1  c2 
first 0.821354 0.936703 
second 0.138376 0.482180 

In [12]: print df.to_latex() 
\begin{tabular}{|l|c|c|c|} 
\hline 
{} &  c1 &  c2 \\ 
\hline 
first & 0.821354 & 0.936703 \\ 
second & 0.138376 & 0.482180 \\ 
\hline 
\end{tabular} 

kopiowaniem wklejanie wyjścia (z [12]) na lateks, otrzymujemy: latex without formatters

Jeśli stworzymy dwie funkcje f1 i f2 i umieścić je w to_latex jak formatters:

def f1(x): 
    return 'blah_%1.2f' % x 

def f2(x): 
    return 'f2_%1.2f' % x 

In [15]: print df.to_latex(formatters=[f1, f2]) 
\begin{tabular}{|l|c|c|c|} 
\hline 
{} &  c1 &  c2 \\ 
\hline 
first & blah\_0.82 & f2\_0.94 \\ 
second & blah\_0.14 & f2\_0.48 \\ 
\hline 
\end{tabular} 

kopiowaniem wklejanie wyjście na lateks, otrzymujemy: latex with formatters f1 and f2

Uwaga: jak funkcja formater f1 jest stosowana do pierwszej kolumny i f2 na sekundę.

+0

Napisałem kod, aby poradzić sobie z następującymi problemami: * Pandy Multi-indeksy * obsługa lateksu zastrzeżone znaki w tabeli. Standardowa metoda pandy prowadzi do błędów w kompilacji lateksu, jeśli w którejkolwiek z komórek stosowane są znaki "&", "%", "$", "#" itp. muszą być uciekł * również kod, który może zespołów reprezentacji lateksowej z dataframe Pandy (cieniowania alternatywne wierszy) * również autoformatowanie numery Metody są powiązani się w lateksowej klasy wytwórczej, że „n napisał tak trudno napisane post tutaj, ponieważ kod jest trochę brudny. Z przyjemnością opublikuję tutaj, jeśli ktoś potrzebuje pomocy. – Joop

+0

Jeśli chcesz sformatować tylko kolumny swobodne, ustaw parametr "float_format" na funkcję formatu. Nie musisz tworzyć listy funkcji dla tego. – srodriguex