2013-03-06 19 views
11

Recentemente ho aggiornato la mia versione di panda. Ho l'ultima versione stabile installato ora:qtconsole non rende pandas dataframes come opzione html notebook_repr_html

pd.__version__ 
Out[5]: '0.10.1' 

prima di questo aggiornamento, questo è il modo dataframes sono stati esposti nel guscio qtconsole (questo non è il mio screenshot, ma semplicemente quella che ho trovato sul web).

rendering pandas dataframe as html table in qtconsole

L'ultima versione di panda inoltre usa un approccio diverso per impostare le opzioni di visualizzazione.

Piuttosto che usare pd.set_printoptions, panda vuole di utilizzare le configurazioni set_option come questo:

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

Dopo l'aggiornamento la mia versione panda, qtconsole non rende dataframes come tabelle HTML.

Un esempio:

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) 

Quando creo un 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 

Questo è quello che vedo nella shell qtconsole:

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 

È possibile verificare come le tue configurazioni di visualizzazione sono attualmente impostate:

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 

Cosa mi manca per rendere le tabelle html prettificate in qtconsole?

risposta

11

Per quanto ne so, l'opzione notebook_repr_html si applica solo al Notebook IPython effettivo e non alla QTConsole.

Nel QTConsole, si può fare:

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

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

Un problema che potreste incontrare è se il codice HTML è troppo lungo per il buffer del QTConsole. In tal caso, nella mia esperienza non comparirà nulla.

+0

Grazie, Paul. Funziona! – hernamesbarbara

+0

Tuttavia, il frontend in uso non dovrebbe essere visibile ai panda. @hernamesbarbara, hai provato a utilizzare i panda in un notebook IPython da quando hai eseguito l'upgrade? –

+0

Sì, ho. Il notebook web funziona esattamente come mi aspetterei. Osservare il problema specificamente nella qtconsole ma non nel notebook è parte di ciò che ho trovato strano. Il comportamento era lo stesso sia in qtconsole che nel notebook. Sto vedendo la stessa cosa sia nel mio ambiente Windows al lavoro che nel mio mac. – hernamesbarbara

Problemi correlati