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_rows
in:
pd.set_option('display.max_rows', 500)
Voor oudere versies van panda’s (<=0.11.0) moet je zowel display.height
als display.max_rows
wijzigen.
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_option
en 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.height
vanaf 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())