1168 Stimmen

Pretty-printen einer gesamten Pandas-Serie / DataFrame

Ich arbeite sehr viel mit Series und DataFrames auf dem Terminal. Der Standard-__repr__ für eine Series gibt eine reduzierte Stichprobe zurück, mit einigen Kopf- und Schwanzwerten, aber der Rest fehlt.

Gibt es eine integrierte Möglichkeit, die gesamte Series / DataFrame schön auszudrucken? Idealerweise sollte es eine richtige Ausrichtung unterstützen, vielleicht auch Grenzen zwischen den Spalten und vielleicht sogar eine Farbcodierung für die verschiedenen Spalten.

50voto

Asclepius Punkte 48774

Verwenden von pd.options.display

Diese Antwort ist eine Variation der vorherigen Antwort von lucidyan. Sie macht den Code lesbarer, indem sie die Verwendung von set_option vermeidet.

Nach dem Importieren von Pandas können Sie alternativ zum Verwenden des Kontextmanagers solche Optionen für die Anzeige großer Dataframes festlegen:

def set_pandas_display_options() -> None:
    """Setze die Anzeigeoptionen für Pandas."""
    # Ref: https://stackoverflow.com/a/52432757/
    display = pd.options.display

    display.max_columns = 1000
    display.max_rows = 1000
    display.max_colwidth = 199
    display.width = 1000
    # display.precision = 2  # je nach Bedarf festlegen
    # display.float_format = lambda x: '{:,.2f}'.format(x)  # je nach Bedarf festlegen

set_pandas_display_options()

Nach diesem Schritt können Sie entweder display(df) oder einfach df verwenden, wenn Sie ein Notebook verwenden, ansonsten print(df).

Was das Betrachten von Spalten betrifft, die Gleitkommazahlen enthalten und den Datentyp object haben, müssen solche Spalten zuerst in den Datentyp float konvertiert werden, bevor die Anzeigegenauigkeit auf sie angewendet wird.

Verwenden von to_string

Pandas 0.25.3 verfügt über die Methoden DataFrame.to_string und Series.to_string, die Formatierungsoptionen akzeptieren.

Verwenden von to_markdown

Wenn Sie Markdown-Ausgabe benötigen, hat Pandas 1.0.0 die Methoden DataFrame.to_markdown und Series.to_markdown.

Verwenden von to_html

Wenn Sie HTML-Ausgabe benötigen, hat Pandas 0.25.3 eine DataFrame.to_html Methode, jedoch nicht eine Series.to_html. Beachten Sie, dass eine Series in ein DataFrame umgewandelt werden kann.

40voto

R Kisyula Punkte 401

Wenn Sie Ipython Notebook (Jupyter) verwenden. Sie können HTML verwenden

from IPython.core.display import HTML
display(HTML(df.to_html()))

13voto

Liang Zulin Punkte 343

Probieren Sie dies aus

pd.set_option('display.height',1000)
pd.set_option('display.max_rows',500)
pd.set_option('display.max_columns',500)
pd.set_option('display.width',1000)

12voto

AliAlavi Punkte 162

nur das ausführen

    pd.set_option("display.max_rows", None, "display.max_columns", None)
    print(df)

nur das machen

Output

Spalte
0    Zeile 0
1    Zeile 1
2    Zeile 2
3    Zeile 3
4    Zeile 4
5    Zeile 5
6    Zeile 6
7    Zeile 7
8    Zeile 8
9    Zeile 9
10  Zeile 10
11  Zeile 11
12  Zeile 12
13  Zeile 13
14  Zeile 14
15  Zeile 15
16  Zeile 16
17  Zeile 17
18  Zeile 18
19  Zeile 19
20  Zeile 20
21  Zeile 21
22  Zeile 22
23  Zeile 23
24  Zeile 24
25  Zeile 25
26  Zeile 26
27  Zeile 27
28  Zeile 28
29  Zeile 29
30  Zeile 30
31  Zeile 31
32  Zeile 32
33  Zeile 33
34  Zeile 34
35  Zeile 35
36  Zeile 36
37  Zeile 37
38  Zeile 38
39  Zeile 39
40  Zeile 40
41  Zeile 41
42  Zeile 42
43  Zeile 43
44  Zeile 44
45  Zeile 45
46  Zeile 46
47  Zeile 47
48  Zeile 48
49  Zeile 49
50  Zeile 50
51  Zeile 51
52  Zeile 52
53  Zeile 53
54  Zeile 54
55  Zeile 55
56  Zeile 56
57  Zeile 57
58  Zeile 58
59  Zeile 59
60  Zeile 60
61  Zeile 61
62  Zeile 62
63  Zeile 63
64  Zeile 64
65  Zeile 65
66  Zeile 66
67  Zeile 67
68  Zeile 68
69  Zeile 69

10voto

AKW Punkte 857

Skripte

Niemand hat diese einfache Lösung in reinem Text vorgeschlagen:

from pprint import pprint

pprint(s.to_dict())

die Ergebnisse wie folgt erzeugt:

{'% Diabetes': 0.06365372374283895,
 '% Fettleibigkeit': 0.06365372374283895,
 '% Bachelor-Abschlüsse': 0.0,
 '% Armut': 0.09548058561425843,
 '% Verkehrstote': 1.1775938892425206,
 '% übermäßiges Trinken': 0.06365372374283895}

Jupyter Notebooks

Zusätzlich, bei der Verwendung von Jupyter Notebooks, ist dies eine großartige Lösung.

Hinweis: pd.Series() hat kein .to_html(), daher muss es in pd.DataFrame() konvertiert werden

from IPython.display import display, HTML

display(HTML(s.to_frame().to_html()))

die Ergebnisse wie folgt erzeugt:

pd.Series als Tabelle in Jupyter Notebooks anzeigen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X