2013-05-07 3 views
52

ho un problema visualizzando il seguente DataFrame:Panda: impostazione n. di righe max

n = 100 
foo = DataFrame(index=range(n)) 
foo['floats'] = np.random.randn(n) 
foo 

Il problema è che non stampa tutte le righe per impostazione predefinita in ipython quaderno, ma devo tagliare per visualizzare le righe risultanti. Anche la seguente opzione non modifica l'output:

pd.set_option('display.max_rows', 500) 

Qualcuno sa come visualizzare l'intero array?

+0

stai chiedendo come farlo in modo da poter vedere tutte le righe o perché il notebook ipython rende così non lo fai –

+0

cosa succede se si esegue solo questo nella shell? funziona? –

+0

Lo stesso problema nella shell ipython. Puoi riprodurre il problema? – Andy

risposta

91

Per la versione 0.11.0 è necessario modificare entrambi display.height e display.max_rows.

pd.set_option('display.height', 500) 
pd.set_option('display.max_rows', 500) 

Vedere anche pd.describe_option('display').

+4

+1 per pd.describe_option ('display'), non conoscevo tutte le opzioni –

+15

L'altezza è ora deprecata quindi l'opzione display.max_rows è sufficiente. – hanleyhansen

1

Come in this answer a similar question, non è necessario modificare le impostazioni. E 'molto più semplice scrivere:

print(foo.to_string()) 
+1

Non dovresti convertirlo in stringa. Non è quello che Andy ha chiesto. – simtim

+0

@simtim Andy ha chiesto come "visualizzare l'intero array". Questo lo farà ed è * molto * più semplice della risposta accettata. – Ninjakannon

6

Come @hanleyhansen osservato in un commento, a partire dalla versione 0.18.1, l'opzione display.height è deprecato, e dice "usare display.max_rows invece". Quindi, non resta che configurare in questo modo:

pd.set_option('display.max_rows', 500) 

Vedere il Release Notes — pandas 0.18.1 documentation: display.height

Disapprovato, display.width è ora solo un'opzione di formattazione non controlla l'attivazione di sintesi, simile a < 0.11.0.

3

Personalmente, mi piace impostare le opzioni direttamente con un'istruzione di assegnazione in quanto è facile da trovare tramite completamento scheda grazie a iPython. Trovo difficile ricordare quali siano esattamente i nomi delle opzioni, quindi questo metodo funziona per me.

Per esempio, tutto quello che ho da ricordare è che si inizia con pd.options

pd.options.<TAB> 

enter image description here

maggior parte delle opzioni sono disponibili sotto display

pd.options.display.<TAB> 

enter image description here

Da qui, di solito in uscita quale sia il valore corrente è come questo:

pd.options.display.max_rows 
60 

Ho poi impostato a quello che io voglio che sia:

pd.options.display.max_rows = 100 

Inoltre, si dovrebbe essere consapevoli del contesto gestore per le opzioni, che imposta temporaneamente le opzioni all'interno di un blocco di codice. Passa nel nome dell'opzione come una stringa seguita dal valore che vuoi che sia.Si può passare in qualsiasi numero di opzioni nella stessa linea:

with pd.option_context('display.max_rows', 100, 'display.max_columns', 10): 
    some pandas stuff 

È inoltre possibile ripristinare l'opzione al suo valore di default in questo modo:

pd.reset_option('display.max_rows') 

e reimpostare tutti loro di nuovo:

pd.reset_option('all') 

È ancora perfettamente possibile impostare le opzioni tramite pd.set_option. Ho trovato che usare direttamente gli attributi è più semplice e c'è meno bisogno di get_option e set_option.

+0

'con pd.option_context' è il metodo più pulito tra queste risposte; minimi effetti collaterali. – ijoseph