it-swarm.com.de

Pandas: Einstellungsnr. von max Zeilen

Ich habe ein Problem beim Anzeigen des folgenden DataFrame:

n = 100
foo = DataFrame(index=range(n))
foo['floats'] = np.random.randn(n)
foo

Das Problem ist, dass in ipython notebook nicht alle Zeilen standardmäßig gedruckt werden, aber ich muss einen Slice erstellen, um die resultierenden Zeilen anzuzeigen. Auch die folgende Option ändert nichts an der Ausgabe:

pd.set_option('display.max_rows', 500)

Weiß jemand, wie man das gesamte Array anzeigt?

86
Andy

Für Version 0.11.0 müssen Sie sowohl display.height Als auch display.max_rows Ändern.

pd.set_option('display.height', 500)
pd.set_option('display.max_rows', 500)

Siehe auch pd.describe_option('display') .

142

Persönlich setze ich die Optionen gerne direkt mit einer Zuweisungsanweisung, da sie dank iPython über die Tab-Vervollständigung leicht zu finden sind. Es fällt mir schwer, mich an die genauen Optionsnamen zu erinnern, daher funktioniert diese Methode für mich.

Ich muss mich zum Beispiel nur daran erinnern, dass es mit pd.options Beginnt.

pd.options.<TAB>

enter image description here

Die meisten Optionen sind unter display verfügbar.

pd.options.display.<TAB>

enter image description here

Von hier gebe ich normalerweise den aktuellen Wert wie folgt aus:

pd.options.display.max_rows
60

Ich stelle es dann auf das ein, was ich möchte:

pd.options.display.max_rows = 100

Beachten Sie auch den Kontext-Manager für Optionen, der die Optionen innerhalb eines Codeblocks vorübergehend festlegt. Übergeben Sie den Optionsnamen als Zeichenfolge, gefolgt vom gewünschten Wert. Sie können eine beliebige Anzahl von Optionen in derselben Zeile übergeben:

with pd.option_context('display.max_rows', 100, 'display.max_columns', 10):
    some pandas stuff

Sie können eine Option auch wie folgt auf den Standardwert zurücksetzen:

pd.reset_option('display.max_rows')

Und setzen Sie alle zurück:

pd.reset_option('all')

Es ist immer noch sehr gut, Optionen über pd.set_option Einzustellen. Ich finde nur, dass die direkte Verwendung der Attribute einfacher ist und weniger Bedarf für get_option Und set_option Besteht.

20
Ted Petrou

Wie @hanleyhansen in einem Kommentar mit Version 0.18.1 feststellte, wurde das display.height Option ist veraltet und sagt "use display.max_rows anstatt ". Sie müssen es also nur so konfigurieren:

pd.set_option('display.max_rows', 500)

Siehe die Versionshinweise - pandas 0.18.1 documentation :

Veraltete display.height, display.width ist jetzt nur noch eine Formatierungsoption, die das Auslösen einer Zusammenfassung, ähnlich <0.11.0, nicht mehr steuert.

10
nealmcb

Es wurde bereits in dieser Kommentar und in diese Antwort darauf hingewiesen, aber ich werde versuchen, die Frage direkter zu beantworten:

from IPython.display import display
import numpy as np
import pandas as pd

n = 100
foo = pd.DataFrame(index=range(n))
foo['floats'] = np.random.randn(n)

with pd.option_context("display.max_rows", foo.shape[0]):
    display(foo)

pandas.option_context ist verfügbar seit pandas 0.13.1 ( pandas 0.13.1 release notes ). Gemäß this ,

Mit [it] können Sie einen Codeblock mit einer Reihe von Optionen ausführen, die auf vorherige Einstellungen zurücksetzen, wenn Sie den with-Block verlassen.

Wie in diese Antwort zu ähnliche Frage ist es nicht erforderlich, Einstellungen zu hacken. Es ist viel einfacher zu schreiben:

print(foo.to_string())
1
Ninjakannon