web-dev-qa-db-fra.com

Pandas: Réglage no. de max lignes

J'ai un problème pour voir 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 découper pour afficher les lignes obtenues. Même l'option suivante ne modifie pas la sortie:

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

Est-ce que quelqu'un sait comment afficher tout le tableau?

86
Andy

Pour la version 0.11.0, vous devez modifier à 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') .

142

Personnellement, j'aime bien définir les options directement avec une déclaration de mission car elle est facile à trouver via la complétion par tabulation grâce à iPython. J'ai du mal à me souvenir des noms exacts des options, cette méthode fonctionne donc pour moi.

Par exemple, tout ce dont je me souviens, c’est que cela 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à, je produis habituellement ce que la valeur actuelle est comme ceci:

pd.options.display.max_rows
60

Je l'ai ensuite réglé sur ce que je veux:

pd.options.display.max_rows = 100

En outre, vous devez connaître le gestionnaire de contexte pour les options, qui définit temporairement les options dans un bloc de code. Transmettez le nom de l'option sous forme de chaîne suivie de la valeur souhaitée. Vous pouvez passer un nombre illimité 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 réinitialisez tous:

pd.reset_option('all')

Il est toujours parfaitement utile de définir les options via pd.set_option. Je trouve que l’utilisation directe des attributs est plus facile et il y a moins de besoin de get_option et set_option.

20
Ted Petrou

Comme @hanleyhansen l'a noté dans un commentaire, à partir de la version 0.18.1, l'option display.height Est obsolète et indique "utilisez display.max_rows À la place". Il suffit donc de le configurer comme ceci:

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

Voir le Notes de version - pandas 0.18.1 :

La méthode display.width, display.width, obsolète, est désormais uniquement une option de formatage qui ne contrôle pas le déclenchement du résumé, similaire à <0.11.0.

10
nealmcb

Cela 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 ( notes de publication de pandas 0.13.1) ). Selon this ,

[it] vous permet [s] d'exécuter un bloc de code avec un ensemble d'options qui rétablissent les paramètres antérieurs lorsque vous quittez le bloc with.

7

Comme dans cette réponse à un question similaire , il n'est pas nécessaire de modifier les paramètres. C'est beaucoup plus simple d'écrire:

print(foo.to_string())
1
Ninjakannon