2013-05-20 1 views
4

J'ai un problème de base avec df.head(). Lorsque la fonction est exécutée, il affiche généralement une belle table au format HTML des 5 premières valeurs, mais maintenant il semble que pour couper la trame de données et les sorties comme ci-dessous:Pandas df.head() Erreur

<class 'pandas.core.frame.DataFrame'> 
Int64Index: 5 entries, 0 to 4 
Data columns (total 9 columns): 
survived 5 non-null values 
pclass  5 non-null values 
name  5 non-null values 
sex   5 non-null values 
age   5 non-null values 
sibsp  5 non-null values 
parch  5 non-null values 
fare  5 non-null values 
embarked 5 non-null values 
dtypes: float64(2), int64(4), object(3) 

Après avoir regardé ce thread j'ai essayé

pd.util.terminal.get_terminal_size() 

et reçu la sortie attendue (80, 25). La configuration manuelle des options d'impression avec

pd.set_printoptions(max_columns=10) 

donne les mêmes résultats de dataframe en tranches comme ci-dessus.

Cela a été confirmé après la plongée dans la documentation here et en utilisant le

get_option("display.max_rows") 
get_option("display.max_columns") 

et obtenir la valeur par défaut correcte 60 lignes et 10 colonnes.

Je n'ai jamais eu de problème avec df.head() avant mais c'est maintenant un problème dans tous mes portables IPython. Je cours pandas 0.11.0 et IPython 0.13.2 dans google chrome.

+0

Merci pour les rapports, y-p a rassemblé [a pull-request] (https://github.com/pydata/pandas/pull/3657) pour corriger ce comportement, si vous souhaitez le tester. Je suis sûr que nous serons en mesure d'obtenir ce 11.1 (dans quelques jours). –

+0

@AndyHayden Super, je vais tester la première chose demain. Merci! – agconti

Répondre

4

En pandas géants 11.0, je pense que l'on utilise le minimum de display.height et max_rows (et display.width et max_columns`), vous devez donc modifier manuellement aussi.

Je n'aime pas cela, j'ai posté ce github issue à ce sujet précédemment.

2

Essayez d'utiliser les éléments suivants pour afficher les 10 premiers articles

from IPython.display import HTML 
HTML(users.head(10).to_html()) 

Je pense 11,0 pandas géants fonction de la tête est totalement unintuitive et devrait sont tout simplement resté à la tête() et vous obtenez votre code html.

+0

Merci pour votre idée, je vais y jeter un coup d'oeil. Je crois que les développeurs de pandas ont résolu ce problème et l'ont rendu plus intuitif dans les pandas 11.1 – agconti