170 votes

Afficher toutes les colonnes d'un cadre de données dans un bloc-notes Jupyter Python

Je veux afficher toutes les colonnes d'un cadre de données dans un carnet de notes Jupyter. Jupyter affiche certaines des colonnes et ajoute des points aux dernières colonnes comme dans l'image suivante :

Juputer Screenshot

Comment puis-je afficher toutes les colonnes ?

269voto

Isma Points 9562

Essayez le paramètre max_columns de l'affichage comme suit :

import pandas as pd
from IPython.display import display

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

Edit : Pandas 0.11.0 backwards

Cette fonction est obsolète, mais dans les versions de Pandas antérieures à la version 0.11.0, la fonction max_columns est spécifié comme suit :

pd.set_printoptions(max_columns=500)

8 votes

Si vous voulez faire un réglage temporaire, vous pouvez utiliser, par exemple, la méthode suivante with pd.option_context("display.max_rows", 10, "display.max_columns", 5): (voir Obtenir et régler les options ).

45voto

Hannah Points 347

Je sais que cette question est un peu ancienne mais ce qui suit a fonctionné pour moi dans un Jupyter Notebook utilisant pandas 0.22.0 et Python 3 :

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

Vous pouvez faire de même pour les rangs :

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

Cela évite d'importer IPython, et il existe d'autres options dans la documentation de pandas.set_option : https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.set_option.html

1 votes

Vous pouvez utiliser le mot clé None dans <nombre de colonnes> si vous ne connaissez pas le nombre de colonnes au préalable.

1 votes

Pour une raison quelconque, aucune des options pd.set_option et pd.options.display.max_columns = None n'a fonctionné pour moi. Seule la solution avec HTML a fonctionné. J'utilise Python 3.8.5.0, pandas 1.1.3 et jupyter core=4.6.3 avec jupyter-notebook : 6.1.4. Une idée de la raison pour laquelle ces solutions ne fonctionnent pas ?

14voto

Je recommande de définir les options d'affichage à l'intérieur d'un gestionnaire de contexte de façon à ce que cela n'affecte qu'une seule sortie. Je préfère généralement une sortie html "jolie", et je définis une fonction force_show_all(df) pour l'affichage du DataFrame 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()))

# ... now when you're ready to fully display df:
force_show_all(df)

Comme d'autres l'ont mentionné, veuillez être prudent de ne l'appeler que sur un cadre de données de taille raisonnable.

11voto

rsc05 Points 734

Python 3.x pour les grands (mais pas trop grands) DataFrames

Peut-être parce que j'ai une ancienne version de pandas mais sur le Jupyter notebook cela fonctionne pour moi.

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

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

0 votes

J'ai essayé cela mais cela a ruiné ma session Jupyter qui est devenue sans mémoire. Mon PC a un SSD et 8 Go de mémoire RAM...

0 votes

@FLBKernel cela ne m'a pas fait ça, peut-être que votre Dataframe est beaucoup plus grand que le mien. Quelle a été votre solution ? Avez-vous essayé une autre méthode qui a fonctionné pour vous ? Si oui, partagez vos connaissances. Merci.

0 votes

Je n'ai pas encore trouvé de méthode, mais je vous ferai savoir dès que je parviendrai à résoudre ce problème. Et oui, mon Dataframe était probablement plus grand, alors je vous signale que cette méthode n'est pas recommandée pour les grands Dataframes.

8voto

moshfiqrony Points 943

Si vous voulez afficher toutes les lignes, configurez comme suit

pd.options.display.max_rows = None

Si vous voulez afficher toutes les colonnes, configurez comme suit

pd.options.display.max_columns = None

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X