Je travaille beaucoup avec Series et DataFrames sur le terminal. La valeur __repr__
par défaut pour une série renvoie un échantillon réduit, avec quelques valeurs de tête et de queue, mais le reste est manquant.
Existe-t-il un moyen intégré d'imprimer correctement l'ensemble de la série / du DataFrame? Idéalement, il prendrait en charge un alignement correct, peut-être des frontières entre les colonnes, et peut-être même un code couleur pour les différentes colonnes.
pd.set_option('display.max_rows', 1000)
par exemple, la coloration est autre chose, je suppose que vous parlez de colorer la sortie de repr html. Je ne pense pas que cela soit intégré du tout.display.max_rows
, le problème est que la plupart du temps je veux que la sortie soit tronquée. Ce n'est qu'occasionnellement que je souhaite voir la sortie complète. Je pourrais définir l'option sur une valeur très élevée, utiliser la valeur par défaut__repr__
, puis revenir à la valeur, mais cela semble un peu lourd, et je pourrais aussi bien écrire ma propre fonction jolie impression dans ce cas.set_option
qui prend en charge la coloration, c'est peut-être quelque chose qui pourrait être fait en tant que plugin pour appliquer un format CSS ou de sortie. C'est la seule façon, je pense, que vous pourriez y parvenirRéponses:
Vous pouvez également utiliser le
option_context
, avec une ou plusieurs options:Cela ramènera automatiquement les options à leurs valeurs précédentes.
Si vous travaillez sur jupyter-notebook, utiliser
display(df)
au lieu deprint(df)
utilisera la logique d'affichage riche jupyter (comme ça) .la source
None
les désactive. À l' aide deswith pd.option_context()
documents d'option ce qui se passe très clairement et explicitement, et montre clairement comment réaliser d' autres changements dans la production de mise en forme qui peut être souhaité, en utilisant par exempleprecision
,max_colwidth
,expand_frame_repr
,colheader_justify
,date_yearfirst
,encoding
, et beaucoup d'autres: pandas.pydata.org/pandas -docs / stable /display(df)
plutôtprint(df)
Pas besoin de pirater les paramètres. Il existe un moyen simple:
la source
with pd.option_context()
documents d'option ce qui se passe beaucoup plus clairement et explicitement, et montre clairement comment réaliser d' autres changements dans la production de mise en forme qui peut être souhaité, en utilisant par exempleprecision
,max_colwidth
,expand_frame_repr
,colheader_justify
,date_yearfirst
,encoding
, et beaucoup d'autres: pandas.pydata.org/ pandas-docs / stable /pd.set_option('display.max_rows', None)
juste avant l'impressiondf
.Bien sûr, si cela revient souvent, créez une fonction comme celle-ci. Vous pouvez même le configurer pour qu'il se charge à chaque démarrage d'IPython: https://ipython.org/ipython-doc/1/config/overview.html
En ce qui concerne la coloration, devenir trop élaboré avec des couleurs me semble contre-productif, mais je conviens que quelque chose comme le bootstrap
.table-striped
serait bien. Vous pouvez toujours créer un problème pour suggérer cette fonctionnalité.la source
Après avoir importé des pandas, au lieu d'utiliser le gestionnaire de contexte, définissez ces options pour afficher des cadres de données entiers:
Pour la liste complète des options utiles, voir:
la source
-1
valeur int au lieu deNone
, si vous voulez une représentation complètedisplay.
du nom de l'option ne semble pas nécessaire. Par exemple,set_option('max_columns')
fonctionne aussi bien.Utilisez le package tabulé:
Et considérez l'exemple d'utilisation suivant:
la source
pd_series.to_frame()
Si vous utilisez Ipython Notebook (Jupyter). Vous pouvez utiliser HTML
la source
En utilisant
pd.options.display
Cette réponse est une variation de la réponse précédente de lucidyan . Il rend le code plus lisible en évitant l'utilisation de
set_option
.Après avoir importé des pandas, au lieu d'utiliser le gestionnaire de contexte, définissez ces options pour afficher des cadres de données volumineux:
Après cela, vous pouvez utiliser soit
display(df)
ou justedf
si vous utilisez un ordinateur portable, sinonprint(df)
.En utilisant
to_string
Pandas 0.25.3 ne
DataFrame.to_string
et desSeries.to_string
méthodes qui acceptent les options de formatage.En utilisant
to_markdown
Si ce que vous avez besoin est sortie démarquage, Pandas a 1.0.0
DataFrame.to_markdown
etSeries.to_markdown
méthodes.En utilisant
to_html
Si vous avez besoin d'une sortie HTML, Pandas 0.25.3 a une
DataFrame.to_html
méthode mais pas aSeries.to_html
. Notez que aSeries
peut être converti en aDataFrame
.la source
Essaye ça
la source
Vous pouvez y parvenir en utilisant la méthode ci-dessous. il suffit de passer le total non. des colonnes présentes dans le DataFrame comme arg à
Par exemple:
la source
Essayez d'utiliser la fonction display (). Cela utiliserait automatiquement les barres de défilement horizontales et verticales et avec cela, vous pouvez afficher facilement différents jeux de données au lieu d'utiliser print ().
display () prend également en charge un alignement correct.
Cependant, si vous souhaitez rendre l'ensemble de données plus beau, vous pouvez le vérifier
pd.option_context()
. Il a beaucoup d'options pour montrer clairement la trame de données.Remarque - J'utilise Jupyter Notebooks.
la source