Pandas: paramètre No. des lignes max

j'ai un problème de visionnement du DataFrame suivant:

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 j'ai de tranche pour afficher les résultats. Même l'option suivante ne change pas la sortie:

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

est-ce que quelqu'un sait comment afficher l'ensemble du tableau?

62
demandé sur Ninjakannon 2013-05-07 20:52:02

5 réponses

pour la version 0.11.0 vous devez changer à la fois display.height et display.max_rows .

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

voir aussi pd.describe_option('display') .

102
répondu Wouter Overmeire 2017-02-22 11:08:50

personnellement, j'aime configurer les options directement avec une instruction de tâche car il est facile de trouver via l'achèvement des onglets grâce à iPython. J'ai du mal à me rappeler quels sont les noms exacts des options, donc cette méthode fonctionne pour moi.

par exemple, tout ce que je dois me rappeler est qu'il commence par pd.options

pd.options.<TAB>

enter image description here

la plupart des options sont disponible sous display

pd.options.display.<TAB>

enter image description here

D'ici, je sors habituellement ce que la valeur courante est comme ceci:

pd.options.display.max_rows
60

Je l'ai ensuite fixé à ce que je veux qu'il soit:

pd.options.display.max_rows = 100

Aussi, vous devez être conscient du gestionnaire de contexte pour les options, qui définit temporairement les options à l'intérieur d'un bloc de code. Passer à l'option nom comme une chaîne de caractères suivie par la valeur que vous voulez qu'il soit. Vous pouvez passer à n'importe quel nombre d'options dans 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 réinitialiser tous en arrière:

pd.reset_option('all')

il est encore parfaitement bon de régler les options via pd.set_option . Je trouve juste que l'utilisation des attributs directement est plus facile et il y a moins besoin de get_option et set_option .

12
répondu Ted Petrou 2017-11-04 17:46:38

comme @hanleyhansen l'a noté dans un commentaire, à partir de la version 0.18.1, l'option display.height est dépréciée, et dit "utiliser display.max_rows à la place". Il suffit donc de le configurer comme ceci:

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

voir les notes de mise à jour-pandas 0.18.1 documentation :

affichage obsolète.hauteur de l'affichage.width est maintenant seulement une option de formatage ne contrôle pas le déclenchement du résumé, similaire à < 0.11.0.

6
répondu nealmcb 2017-05-08 00:39:45

, Comme dans cette réponse à un la même question , il n'est pas nécessaire de pirater les paramètres. Il est beaucoup plus simple d'écrire:

print(foo.to_string())
1
répondu Ninjakannon 2017-01-05 14:47:17

il a déjà été souligné dans ce commentaire et dans 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 ( pandas 0.13.1 notes de version ). Selon ce ,

[il] permet[s] vous pouvez exécuter une codeblock avec un ensemble d'options qui reviennent aux réglages antérieurs lorsque vous quittez le bloc with.

1
répondu Guilherme Beltramini 2018-07-19 23:54:37