Pretty-print für eine gesamte Pandas-Serie / DataFrame
Ich arbeite mit Serien-und DataFrames auf das terminal, eine Menge. Die Standard - __repr__
für eine Serie gibt einem reduzierten Probe, mit einigen Kopf-und Schwanz-Werte, aber der rest fehlt.
Gibt es eine vordefinierte Art und Weise zu pretty-print-die komplette Serie /DataFrame? Idealerweise sollte es unterstützen der richtigen Ausrichtung, vielleicht die Grenzen zwischen den Spalten-und vielleicht sogar Farbcodierung für die verschiedenen Spalten.
- Die reduzierte Leistung wird durch den Standard-Optionen, die Sie ändern können
pd.set_option('display.max_rows', 1000)
zum Beispiel, die Farbgebung ist etwas anderes, ich nehme an, Sie sprechen über die Färbung der html-Ausgabe repr. Ich glaube nicht, dass diese gebaut wird an allen. - vielen Dank, ich kannte diese
display.max_rows
, das problem ist, dass die meisten der Zeit, ich möchte die Ausgabe abgeschnitten werden. Es ist nur gelegentlich, dass ich wünschte, um zu sehen, die vollständige Ausgabe. Ich konnte die option auf einen sehr hohen Wert verwenden Sie die Standard -__repr__
, dann wieder den Wert, aber das scheint mir ein bisschen umständlich, und ich könnte genauso gut schreiben, dass meine eigenen pretty-print-Funktion in diesem Fall. - in Bezug auf Farben - dies ist ein Farb-terminal, so dass es schön wäre zu haben, die jede Zeile gedruckt in einer anderen Farbe, um ganz einfach die Werte unterscheiden sich von einander. Pandas funktioniert gut mit ipython, die verwendet erweiterte terminal - Funktionen-einschließlich Farbe - so wurde ich gefragt, ob Pandas hatte einige Färbung-Fähigkeiten selbst.
- Ich benutze Pandas in IPython Notebook eher als IPython als terminal-shell, ich sehe keine Optionen in
set_option
unterstützt, dass die Färbung, der es vielleicht etwas, das getan werden könnte, als ein plugin zu gelten einige css-oder Ausgabe-Formatierung. Dies ist der einzige Weg, ich glaube, Sie könnten dies erreichen,
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie auch die
option_context
, mit einer oder mehreren Optionen:Diese wird automatisch wieder die Optionen auf Ihre vorherigen Werte.
Wenn Sie auf jupyter-notebook, mit
display(df)
stattprint(df)
verwenden jupyter Reich Anzeige Logik (wie so).None
schaltet Sie aus. Mit derwith pd.option_context()
option dokumentiert, was Los ist, sehr deutlich und ausdrücklich, und macht deutlich, wie das erreichen der anderen änderungen in der Ausgabe-Formatierung, die kann gewünscht werden, z.B. mitprecision
,max_colwidth
,expand_frame_repr
,colheader_justify
,date_yearfirst
,encoding
, und viele, viele mehr: pandas.pydata.org/pandas-docs/stable/options.htmldisplay(df)
stattprint(df)
Müssen keine hack-Einstellungen. Es gibt eine einfache Methode:
with pd.option_context()
option dokumentiert, was Los ist viel mehr klar und deutlich, und macht deutlich, wie das erreichen der anderen änderungen in der Ausgabe-Formatierung, die kann gewünscht werden, z.B. mitprecision
,max_colwidth
,expand_frame_repr
,colheader_justify
,date_yearfirst
,encoding
, und viele, viele mehr: pandas.pydata.org/pandas-docs/stable/options.htmlpd.set_option('display.max_rows', None)
nur vor dem druckendf
.Sicher, wenn dieser kommt, eine Menge, eine Funktion wie diese. Sie können auch konfigurieren, um es zu laden bei jedem start von IPython: https://ipython.org/ipython-doc/1/config/overview.html
Als für die Färbung, immer zu aufwendig mit den Farben klingt kontraproduktiv für mich, aber ich Stimme so etwas wie bootstrap ist
.Tisch-gestreift
wäre schön. Sie konnte immer erstellen ein Problem vorschlagen, dieses feature.Nach dem Import pandas, als alternative zur Verwendung der context-manager so eingestelltOptionen für die Anzeige der gesamten dataframes:
Für eine vollständige Liste von nützlichen Optionen, siehe:
-1
int-Wert stattNone
, wenn Sie wollen die volle Darstellungdisplay.
in der option name scheint nicht notwendig zu sein. Zum Beispielset_option('max_columns')
funktioniert genauso gut.Verwenden Sie das tabellarisieren-Paket:
Und betrachten Sie das folgende Beispiel:
pd_series.to_frame()
Wenn Sie mit Ipython Notebook (Jupyter). Sie können HTML verwenden,
Versuchen, diese
Diese Antwort ist eine Variante des vor Antwort von lucidyan. Es macht den code besser lesbar durch die Vermeidung der Verwendung von
set_option
.Nach dem Import pandas, als alternative zur Verwendung der context-manager so eingestelltOptionen für die Anzeige von großen dataframes:
Danach können Sie
display(df)
oder nurdf
wenn Sie mit einem notebook, sonstprint(df)
.Können Sie erreichen dies mithilfe der unten Methode. geben Sie einfach die Gesamtzahl. von Spalten vorhanden, in dem DataFrame als arg zu
ZB :
Versuchen, mit display () - Funktion. Dies würde automatisch Horizontale und vertikale Bildlaufleisten und mit diesem können Sie die Anzeige verschiedener Datensätze einfach anstelle der Verwendung von print().
display() unterstützt eine korrekte Ausrichtung auch.
Allerdings, wenn Sie möchten, um die dataset-schöner können Sie überprüfen
pd.option_context()
. Es hat viele Optionen, um klar zu zeigen, das dataframe.Hinweis - ich bin mit Jupyter Notebooks.