Visualizza tutte le colonne del dataframe in un notebook Jupyter Python


103

Voglio mostrare tutte le colonne in un dataframe in un Jupyter Notebook. Jupyter mostra alcune delle colonne e aggiunge punti alle ultime colonne come nella seguente immagine:

Schermata di Juputer

Come posso visualizzare tutte le colonne?

Risposte:


173

Prova l'impostazione display max_columns come segue:

import pandas as pd
from IPython.display import display

df = pd.read_csv("some_data.csv")
pd.options.display.max_columns = None
display(df)

O

pd.set_option('display.max_columns', None)

Modifica: Panda 0.11.0 all'indietro

Questo è deprecato ma nelle versioni di Panda precedenti alla 0.11.0 l' max_columnsimpostazione è specificata come segue:

pd.set_printoptions(max_columns=500)

Dovrebbe funzionare a meno che tu non abbia una versione molto vecchia di Panda. Ho aggiornato la risposta ...
Isma

4
Non riesco a credere che questo sia il modo per farlo!
information_interchange

2
Se si desidera effettuare un'impostazione temporanea, è possibile utilizzare ad esempio with pd.option_context("display.max_rows", 10, "display.max_columns", 5):(vedere Opzioni di acquisizione e impostazione ).
Benjamin B.

35

So che questa domanda è un po 'vecchia ma quanto segue ha funzionato per me in un notebook Jupyter con panda 0.22.0 e Python 3:

import pandas as pd
pd.set_option('display.max_columns', <number of columns>)

Puoi fare lo stesso anche per le righe:

pd.set_option('display.max_rows', <number of rows>)

Ciò consente di risparmiare l'importazione di IPython e ci sono più opzioni nella documentazione pandas.set_option: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.set_option.html


1
È possibile utilizzare la parola chiave Nessuno in <numero di colonne> se non si conosce in anticipo il numero di colonne.
kmundnic

9

Python 3.x per DataFrame grandi (ma non troppo grandi)

Forse perché ho una versione precedente dei panda, ma sul notebook Jupyter questo funziona per me

import pandas as pd
from IPython.core.display import HTML

df=pd.read_pickle('Data1')
display(HTML(df.to_html()))

Ho provato questo ma ha rovinato la mia sessione di jupyter andando fuori memoria. Il mio PC ha SSD e 8 GB di memoria RAM ...
FLBKernel

@FLBKernel non mi ha fatto questo, forse il tuo Dataframe è molto più grande del mio. Qual è stata la tua via d'uscita? Hai provato un altro metodo e hai lavorato per te? se è così condividi la tua conoscenza. Grazie.
rsc05

Non ho ancora trovato alcun metodo, ma ti farò sapere non appena avrò risolto il problema. E sì, il mio Dataframe era probabilmente più grande, quindi facciamo notare che questo non è consigliabile per dataframe di grandi dimensioni
FLBKernel

1
@FLBKernel Anche il mio frame di dati era grande. Ma non sapevo fino a che punto potesse essere grande. Lo farò notare. Grazie!
rsc05

Il mio ha 107.763 righe e 15 colonne. Possiamo stabilire, forse, che più di circa 100k righe e 15 colonne questa risposta non è raccomandabile. Mi piace il titolo "grande (ma non troppo grande)" però :)
FLBKernel

5

Consiglio di impostare le opzioni di visualizzazione all'interno di un gestore di contesto in modo che influisca solo su un singolo output. Se vuoi anche stampare una versione html "carina", definirei una funzione e visualizzare il dataframe dfusando force_show_all(df):

from IPython.core.display import display, HTML

def force_show_all(df):
    with pd.option_context('display.max_rows', None, 'display.max_columns', None, 'display.width', None):
        display(HTML(df.to_html()))

Come altri hanno già detto, sii cauto nel chiamarlo solo su un dataframe di dimensioni ragionevoli.


1

puoi usare pandas.set_option (), per la colonna, puoi specificare una qualsiasi di queste opzioni

pd.set_option("display.max_rows", 200)
pd.set_option("display.max_columns", 100)
pd.set_option("display.max_colwidth", 200)

Per la colonna di stampa completa, puoi usare in questo modo

import pandas as pd
pd.set_option('display.max_colwidth', -1)
print(words.head())

inserisci qui la descrizione dell'immagine


0

Se vuoi mostrare tutte le righe impostate come sotto

pd.options.display.max_rows = None

Se vuoi mostrare tutte le colonne impostate come sotto

pd.options.display.max_columns = None
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.