Zeigen Sie alle Datenrahmenspalten in einem Jupyter Python-Notizbuch an

92

Ich möchte alle Spalten in einem Datenrahmen in einem Jupyter-Notizbuch anzeigen. Jupyter zeigt einige der Spalten und fügt den letzten Spalten Punkte hinzu, wie im folgenden Bild:

Juputer Screenshot

Wie kann ich alle Spalten anzeigen?

Michail N.
quelle

Antworten:

157

Versuchen Sie die Einstellung für die Anzeige von max_columns wie folgt:

import pandas as pd
from IPython.display import display

df = pd.read_csv("some_data.csv")
pd.options.display.max_columns = None
display(df)

Oder

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

Bearbeiten: Pandas 0.11.0 rückwärts

Dies ist veraltet, aber in Versionen von Pandas, die älter als 0.11.0 sind, wird die max_columnsEinstellung wie folgt angegeben:

pd.set_printoptions(max_columns=500)
Isma
quelle
Sollte funktionieren, es sei denn, Sie haben eine sehr alte Version von Pandas. Ich habe die Antwort aktualisiert ...
Isma
4
Ich kann nicht glauben, dass dies der richtige Weg ist!
information_interchange
2
Wenn Sie eine temporäre Einstellung vornehmen möchten, können Sie z. B. verwenden with pd.option_context("display.max_rows", 10, "display.max_columns", 5):(siehe Abrufen und Einstellungsoptionen ).
Benjamin B.
30

Ich weiß, dass diese Frage etwas alt ist, aber in einem Jupyter-Notizbuch mit Pandas 0.22.0 und Python 3 hat Folgendes funktioniert:

import pandas as pd
pd.set_option('display.max_columns', <number of columns>)

Sie können dasselbe auch für die Zeilen tun:

pd.set_option('display.max_rows', <number of rows>)

Dies spart den Import von IPython und es gibt weitere Optionen in der Dokumentation zu pandas.set_option: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.set_option.html

Hannah
quelle
1
Sie können das Schlüsselwort None in <Anzahl der Spalten> verwenden, wenn Sie die Anzahl der Spalten vorher nicht kennen.
kmundnic
9

Python 3.x für große (aber nicht zu große) DataFrames

Vielleicht, weil ich eine ältere Version von Pandas habe, aber auf Jupyter Notebook funktioniert das für mich

import pandas as pd
from IPython.core.display import HTML

df=pd.read_pickle('Data1')
display(HTML(df.to_html()))
rsc05
quelle
Versuchte dies, aber es ruinierte meine Jupyter-Sitzung, die aus dem Gedächtnis ging. Mein PC hat SSD und 8 GB RAM-Speicher ...
FLBKernel
@FLBKernel es hat mir das nicht angetan, vielleicht ist dein Dataframe viel größer als meiner. Was war dein Ausweg? Haben Sie eine andere Methode ausprobiert und für Sie gearbeitet? Wenn ja, teilen Sie Ihr Wissen. Vielen Dank.
rsc05
Ich habe noch keine Methode gefunden, aber ich werde Sie informieren, sobald ich dieses Problem lösen kann. Und ja, mein Datenrahmen war wahrscheinlich größer, also lassen Sie uns darauf hinweisen, dass dies für große Datenrahmen nicht empfehlenswert ist
FLBKernel
1
@FLBKernel Mein Datenrahmen war ebenfalls groß. Aber ich wusste nicht, inwieweit es groß sein kann. Ich werde darauf hinweisen. Vielen Dank!
rsc05
Meins hat 107.763 Zeilen und 15 Spalten. Wir können feststellen, dass diese Antwort mehr als 100.000 Zeilen und 15 Spalten nicht empfehlenswert ist. Ich mag den Titel "groß (aber nicht zu groß)" :)
FLBKernel
3

Ich empfehle, die Anzeigeoptionen in einem Kontextmanager so einzustellen, dass sie nur eine einzelne Ausgabe betreffen. Wenn Sie auch eine "hübsche" HTML-Version drucken möchten, würde ich eine Funktion definieren und den Datenrahmen anzeigen dfmit force_show_all(df):

from IPython.core.display import display, HTML

def force_show_all(df):
    with pd.option_context('display.max_rows', None, 'display.max_columns', None, 'display.width', None):
        display(HTML(df.to_html()))

Seien Sie vorsichtig, wie andere bereits erwähnt haben, und rufen Sie dies nur auf einem Datenrahmen mit angemessener Größe auf.

Zephaniah Grunschlag
quelle
0

Sie können pandas.set_option () verwenden. Für die Spalte können Sie eine dieser Optionen angeben

pd.set_option("display.max_rows", 200)
pd.set_option("display.max_columns", 100)
pd.set_option("display.max_colwidth", 200)

Für eine vollständige Druckspalte können Sie diese verwenden

import pandas as pd
pd.set_option('display.max_colwidth', -1)
print(words.head())

Geben Sie hier die Bildbeschreibung ein

Shaina Raza
quelle