Panda’s: Instellingsnr. van max rijen

Ik heb een probleem met het bekijken van het volgende DataFrame:

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

Het probleem is dat niet alle rijen standaard worden afgedrukt in ipython-notebook, maar ik moet slicen om de resulterende rijen te bekijken. Zelfs de volgende optie verandert de uitvoer niet:

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

Weet iemand hoe de hele array moet worden weergegeven?


Antwoord 1, autoriteit 100%

Stel display.max_rowsin:

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

Voor oudere versies van panda’s (<=0.11.0) moet je zowel display.heightals display.max_rowswijzigen.

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

Zie ook pd.describe_option('display').

Je kunt voor deze ene keer slechts tijdelijkeen optie instellen, zoals deze:

from IPython.display import display
with pd.option_context('display.max_rows', 100, 'display.max_columns', 10):
    display(df) #need display to show the dataframe when using with in jupyter
    #some pandas stuff

Je kunt een optie ook als volgt terugzetten naar de standaardwaarde:

pd.reset_option('display.max_rows')

En reset ze allemaal terug:

pd.reset_option('all')


Antwoord 2, autoriteit 15%

Persoonlijk vind ik het leuk om de opties rechtstreeks in te stellen met een opdrachtverklaring, omdat deze dankzij iPython gemakkelijk te vinden is via het invullen van tabbladen. Ik vind het moeilijk om te onthouden wat de exacte optienamen zijn, dus deze methode werkt voor mij.

Ik hoef bijvoorbeeld alleen maar te onthouden dat het begint met pd.options

pd.options.<TAB>

De meeste opties zijn beschikbaar onder display

pd.options.display.<TAB>

Vanaf hier geef ik meestal de huidige waarde als volgt weer:

pd.options.display.max_rows
60

Ik stel het vervolgens in op wat ik wil dat het is:

pd.options.display.max_rows = 100

Je moet ook op de hoogte zijn van de contextmanager voor opties, die tijdelijk de opties in een codeblok plaatst. Geef de optienaam door als een tekenreeks gevolgd door de gewenste waarde. U mag een willekeurig aantal opties in dezelfde regel doorgeven:

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

Je kunt een optie ook als volgt terugzetten naar de standaardwaarde:

pd.reset_option('display.max_rows')

En reset ze allemaal terug:

pd.reset_option('all')

Het is nog steeds prima om opties in te stellen via pd.set_option. Ik vind het gewoon gemakkelijker om de attributen rechtstreeks te gebruiken en er is minder behoefte aan get_optionen set_option.


Antwoord 3, autoriteit 12%

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

Werkt nietin Jupyter!
Gebruik in plaats daarvan:

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

Antwoord 4, autoriteit 3%

Er werd al naar verwezen in deze opmerkingen in dit antwoord, maar ik zal proberen een directer antwoord op de vraag te geven:

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_contextis beschikbaar sinds panda’s 0.13 .1 (panda’s 0.13.1 release-opmerkingen).
Volgens dit,

[it] staat [en] u toe een codeblok uit te voeren met een reeks opties die terugkeren naar eerdere instellingen wanneer u het with-blok verlaat.


Antwoord 5, autoriteit 2%

Zoals @hanleyhansen in een opmerking opmerkte, is de optie display.heightvanaf versie 0.18.1 verouderd en staat er “gebruik in plaats daarvan display.max_rows“. Dus je hoeft het alleen maar als volgt te configureren:

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

Zie de Release-opmerkingen — documentatie over pandas 0.18.1:

Verouderde display.height, display.width is nu alleen een opmaakoptie die het activeren van samenvatting niet regelt, vergelijkbaar met < 0.11.0.


Antwoord 6, autoriteit 2%

gebruik om een ​​onbeperkt aantal rijen in te stellen

Geen

d.w.z.

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

nu zal de notebook alle rijen in alle datasets in de notebook weergeven;)

Op dezelfde manier kunt u instellen dat alle kolommen worden weergegeven als

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

als je nu de cel gebruikt met alleen dataframe zonder kop- of staarttags
als

df

dan toont het alle rijen en kolommen in het dataframe df


Antwoord 7

Zoals in dit antwoordop een soortgelijke vraag, het is niet nodig om instellingen te hacken. Het is veel eenvoudiger om te schrijven:

print(foo.to_string())

Other episodes