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?
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')
.
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>
la plupart des options sont disponible sous display
pd.options.display.<TAB>
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
.
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.
, 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())
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.