339 votes

Pandas : Définition du nombre maximal de lignes

J'ai un problème pour afficher ce qui suit DataFrame :

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

Le problème est qu'il n'imprime pas toutes les lignes par défaut dans ipython notebook, mais je dois couper pour voir les lignes résultantes. Même l'option suivante ne change pas la sortie :

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

Quelqu'un sait-il comment afficher l'ensemble du tableau ?

552voto

Wouter Overmeire Points 6676

Définir display.max_rows :

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

Pour les versions plus anciennes de pandas (<=0.11.0), vous devez modifier à la fois display.height y display.max_rows .

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

Voir aussi pd.describe_option('display') .

Vous pouvez définir une option uniquement temporairement pour cette seule fois, comme ça :

from IPython.display import display
with pd.option_context('display.max_rows', 100, 'display.max_columns', 10):
    display(df) #need display to show the dataframe when using with in jupyter
    #some pandas stuff

Vous pouvez également réinitialiser une option à sa valeur par défaut comme ceci :

pd.reset_option('display.max_rows')

Et les remettre à zéro :

pd.reset_option('all')

74voto

Adrien Renaud Points 701
pd.set_option('display.max_rows', 500)
df

Ne fonctionne pas dans Jupyter !
Utilisez plutôt :

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

73voto

Ted Petrou Points 20559

Personnellement, je préfère définir les options directement avec une instruction d'affectation, car il est facile de les trouver via la complétion de tabulation grâce à iPython. J'ai du mal à me souvenir des noms exacts des options, aussi cette méthode me convient-elle.

Par exemple, tout ce dont je dois me souvenir, c'est qu'il commence par pd.options

pd.options.<TAB>

enter image description here

La plupart des options sont disponibles sous display

pd.options.display.<TAB>

enter image description here

A partir de là, j'affiche généralement la valeur actuelle comme ceci :

pd.options.display.max_rows
60

Je le règle ensuite sur ce que je veux qu'il soit :

pd.options.display.max_rows = 100

Vous devez également connaître le gestionnaire de contexte pour les options, qui définit temporairement les options à l'intérieur d'un bloc de code. Passez le nom de l'option sous la forme d'une chaîne de caractères suivie de la valeur que vous souhaitez lui donner. Vous pouvez passer un nombre quelconque d'options sur la même ligne :

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

Vous pouvez également réinitialiser une option à sa valeur par défaut comme ceci :

pd.reset_option('display.max_rows')

Et les remettre à zéro :

pd.reset_option('all')

Il est encore parfaitement possible de définir des options via pd.set_option . Je trouve simplement que l'utilisation directe des attributs est plus facile et qu'il y a moins de besoin de get_option y set_option .

28voto

starriet Points 517

Je ne sais pas pourquoi personne ne l'a mentionné.

Vous devez également définir 'display.min_rows' .

pd.set_option('display.min_rows', 500)  # <-add this!
pd.set_option('display.max_rows', 500)

Si total number of rows > display.max_rows ,

alors, en ne fixant que display.max_rows serait pas travail.

(Oui, c'est confus. Ça devrait être modifié).

18voto

Il a déjà été signalé dans ce commentaire et en cette réponse mais je vais essayer de donner une réponse plus directe à la question :

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

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

with pd.option_context("display.max_rows", foo.shape[0]):
    display(foo)

pandas.option_context est disponible depuis pandas 0.13.1 ( Notes de publication de pandas 0.13.1 ). Selon ce ,

[Il vous permet d'exécuter un bloc de code avec un ensemble d'options qui reviennent aux paramètres antérieurs lorsque vous quittez le bloc.

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