966 Stimmen

Wie kann ich die Ausgabeanzeige erweitern, um mehr Spalten eines Pandas DataFrame zu sehen?

Gibt es eine Möglichkeit, die Anzeige der Ausgabe im interaktiven Modus oder im Skript-Ausführungsmodus zu erweitern?

Konkret verwende ich die describe() Funktion auf eine Pandas DataFrame . Wenn die DataFrame fünf Spalten (Labels) breit ist, erhalte ich die gewünschte deskriptive Statistik. Wenn jedoch die DataFrame mehr Spalten hat, werden die Statistiken unterdrückt und es wird etwas wie dieses zurückgegeben:

>> Index: 8 entries, count to max
>> Data columns:
>> x1          8  non-null values
>> x2          8  non-null values
>> x3          8  non-null values
>> x4          8  non-null values
>> x5          8  non-null values
>> x6          8  non-null values
>> x7          8  non-null values

Der Wert "8" wird unabhängig davon angegeben, ob es 6 oder 7 Spalten gibt. Worauf bezieht sich die "8"?

Ich habe bereits versucht, die IDLE Fenster vergrößert und die Breite der "Configure IDLE"-Optionen erhöht, ohne Erfolg.

30voto

debaonline4u Punkte 4379

Ich habe diese Einstellungen verwendet, wenn der Umfang der Daten hoch war.

# Environment settings: 
pd.set_option('display.max_column', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_seq_items', None)
pd.set_option('display.max_colwidth', 500)
pd.set_option('expand_frame_repr', True)

Sie können sich auf die Dokumentation aquí .

29voto

bmu Punkte 32819

Sie können die Druckoptionen von Pandas mit set_printoptions .

In [3]: df.describe()
Out[3]:
<class 'pandas.core.frame.DataFrame'>
Index: 8 entries, count to max
Data columns:
x1    8  non-null values
x2    8  non-null values
x3    8  non-null values
x4    8  non-null values
x5    8  non-null values
x6    8  non-null values
x7    8  non-null values
dtypes: float64(7)

In [4]: pd.set_printoptions(precision=2)

In [5]: df.describe()
Out[5]:
            x1       x2       x3       x4       x5       x6       x7
count      8.0      8.0      8.0      8.0      8.0      8.0      8.0
mean   69024.5  69025.5  69026.5  69027.5  69028.5  69029.5  69030.5
std       17.1     17.1     17.1     17.1     17.1     17.1     17.1
min    69000.0  69001.0  69002.0  69003.0  69004.0  69005.0  69006.0
25%    69012.2  69013.2  69014.2  69015.2  69016.2  69017.2  69018.2
50%    69024.5  69025.5  69026.5  69027.5  69028.5  69029.5  69030.5
75%    69036.8  69037.8  69038.8  69039.8  69040.8  69041.8  69042.8
max    69049.0  69050.0  69051.0  69052.0  69053.0  69054.0  69055.0

Dies wird jedoch nicht in allen Fällen funktionieren, da Pandas die Konsolenbreite erkennt und nur to_string wenn die Ausgabe in die Konsole passt (siehe den Docstring von set_printoptions ). In diesem Fall können Sie explizit die to_string wie beantwortet von BrenBarn .

Update

Mit Version 0.10 wird die Art und Weise, wie breite Datenrahmen gedruckt werden, geändert geändert :

In [3]: df.describe()
Out[3]:
                 x1            x2            x3            x4            x5  \
count      8.000000      8.000000      8.000000      8.000000      8.000000
mean   59832.361578  27356.711336  49317.281222  51214.837838  51254.839690
std    22600.723536  26867.192716  28071.737509  21012.422793  33831.515761
min    31906.695474   1648.359160     56.378115  16278.322271     43.745574
25%    45264.625201  12799.540572  41429.628749  40374.273582  29789.643875
50%    56340.214856  18666.456293  51995.661512  54894.562656  47667.684422
75%    75587.003417  31375.610322  61069.190523  67811.893435  76014.884048
max    98136.474782  84544.484627  91743.983895  75154.587156  99012.695717

                 x6            x7
count      8.000000      8.000000
mean   41863.000717  33950.235126
std    38709.468281  29075.745673
min     3590.990740   1833.464154
25%    15145.759625   6879.523949
50%    22139.243042  33706.029946
75%    72038.983496  51449.893980
max    98601.190488  83309.051963

Außerdem wurde die API für die Einstellung von Pandas-Optionen geändert:

In [4]: pd.set_option('display.precision', 2)

In [5]: df.describe()
Out[5]:
            x1       x2       x3       x4       x5       x6       x7
count      8.0      8.0      8.0      8.0      8.0      8.0      8.0
mean   59832.4  27356.7  49317.3  51214.8  51254.8  41863.0  33950.2
std    22600.7  26867.2  28071.7  21012.4  33831.5  38709.5  29075.7
min    31906.7   1648.4     56.4  16278.3     43.7   3591.0   1833.5
25%    45264.6  12799.5  41429.6  40374.3  29789.6  15145.8   6879.5
50%    56340.2  18666.5  51995.7  54894.6  47667.7  22139.2  33706.0
75%    75587.0  31375.6  61069.2  67811.9  76014.9  72039.0  51449.9
max    98136.5  84544.5  91744.0  75154.6  99012.7  98601.2  83309.1

29voto

BrenBarn Punkte 228691

Sie können verwenden print df.describe().to_string() um die Anzeige der gesamten Tabelle zu erzwingen. (Sie können verwenden to_string() so für jeden DataFrame. Das Ergebnis von describe ist selbst nur ein DataFrame).

Die 8 ist die Anzahl der Zeilen in dem DataFrame, der die "Beschreibung" enthält (weil describe berechnet 8 Statistiken, Minimum, Maximum, Mittelwert usw.).

27voto

zeeshan Punkte 407

Die folgende Zeile reicht aus, um alle Spalten eines Datenrahmens anzuzeigen.

pd.set_option('display.max_columns', None)

24voto

Wilfred Hughes Punkte 27613

Sie können die Ausgabeanzeige an Ihre aktuelle Terminalbreite anpassen:

pd.set_option('display.width', pd.util.terminal.get_terminal_size()[0])

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