2013-03-06 14 views
11

Niedawno zaktualizowałem swoją wersję pand. Mam najnowsza stabilna wersja zainstalowana teraz:qtconsole nie renderuje ramek danych pandy jako html notebook_repr_html opcja

pd.__version__ 
Out[5]: '0.10.1' 

przed tą aktualizacją, to jak dataframes były wyświetlane w qtconsole powłoce (to nie jest mój zrzut ekranu, ale po prostu jeden znalazłem w internecie).

rendering pandas dataframe as html table in qtconsole

Najnowsza wersja pandy wykorzystuje również inne podejście do ustawiania opcji wyświetlania.

Zamiast używać pd.set_printoptions, pandy chce wykorzystać set_option configs tak:

pd.set_option('display.notebook_repr_html', True) 

Po uaktualnieniu moją wersję pandy, nie qtconsole renderuje dataframes jak tabele html.

Przykład:

import numpy as np 
import pandas as pd 

pd.set_option('display.notebook_repr_html', True) 
pd.set_option('display.expand_frame_repr', True) 
pd.set_option('display.precision', 3) 
pd.set_option('display.line_width', 100) 
pd.set_option('display.max_rows', 50) 
pd.set_option('display.max_columns', 10) 
pd.set_option('display.max_colwidth', 15) 

Kiedy tworzę DataFrame ...

f = lambda x: x*np.random.rand() 
data = {"a": pd.Series(np.arange(10) ** 2), 
     "b": pd.Series(map(f, np.ones(10))) } 
df = pd.DataFrame(data) 
df 

To co widzę w qtconsole powłoki:

Out[4]: 
    a  b 
0 0 0.15 
1 1 0.74 
2 4 0.81 
3 9 0.94 
4 16 0.40 
5 25 0.03 
6 36 0.40 
7 49 0.43 
8 64 0.56 
9 81 0.14 

Można sprawdzić, w jaki sposób konfiguracje wyświetlania są aktualnie ustawione:

opts = ["max_columns", 
     "max_rows", 
     "line_width", 
     "max_colwidth", 
     "notebook_repr_html", 
     "pprint_nest_depth", 
     "expand_frame_repr" ] 

for opt in opts: 
    print opt, pd.get_option(opt) 

Out[5] 
max_columns 10 
max_rows 50 
line_width 100 
max_colwidth 15 
notebook_repr_html True 
pprint_nest_depth 3 
expand_frame_repr True 

Czego mi brakuje, aby renderować upiększone tabele html w qtconsole?

Odpowiedz

11

O ile mi wiadomo, opcja notebook_repr_html dotyczy tylko rzeczywistego notatnika IPython, a nie QTConsole.

W QTConsole, można zrobić:

from IPython.display import HTML 
import numpy as np 
import pandas 

df = pandas.DataFrame(np.random.normal(size=(75,5))) 
HTML(df.to_html()) 

Jeden problem może wystąpić, jeśli jest HTML jest zbyt długa dla Twojego QTConsole za buforem. W tym przypadku nic nie pojawi się z mojego doświadczenia.

+0

Dzięki, Paul. To działa! – hernamesbarbara

+0

Jednak używana nakładka nie powinna być widoczna dla pand. @hernamesbarbara, czy próbowałeś używać pand w notatniku IPython od aktualizacji? –

+0

Tak, mam. Internetowy notes działa tak, jak bym tego oczekiwał. Obserwowanie problemu w qtconsole, ale nie w notatniku, jest częścią tego, co uważam za dziwne. Zachowanie było takie samo w qtconsole i notebooku. Widzę to samo w moim środowisku Windows w pracy i moim Macu. – hernamesbarbara

Powiązane problemy