Pandas: Ajuste no. de filas máximas


Tengo un problema para ver lo siguiente DataFrame:

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

El problema es que no imprime todas las filas por defecto en el cuaderno ipython, pero tengo que cortar para ver las filas resultantes. Incluso la siguiente opción no cambia la salida:

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

¿alguien sabe cómo mostrar toda la matriz?

Author: Ninjakannon, 2013-05-07

5 answers

Para la versión 0.11.0 necesita cambiar display.height y display.max_rows.

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

Véase también pd.describe_option('display').

 102
Author: Wouter Overmeire,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-22 11:08:50

Personalmente, me gusta configurar las opciones directamente con una instrucción de asignación, ya que es fácil de encontrar a través de la finalización de pestañas gracias a IPython. Me resulta difícil recordar cuáles son los nombres exactos de las opciones, por lo que este método funciona para mí.

Por ejemplo, todo lo que tengo que recordar es que comienza con pd.options

pd.options.<TAB>

introduzca la descripción de la imagen aquí

La mayoría de las opciones están disponibles en display

pd.options.display.<TAB>

introduzca la descripción de la imagen aquí

A partir de aquí, por lo general la salida de lo que el valor actual es así:

pd.options.display.max_rows
60

Luego lo pongo en lo que quiero que sea: {[13]]}

pd.options.display.max_rows = 100

Además, debe tener en cuenta el administrador de contexto para opciones, que establece temporalmente las opciones dentro de un bloque de código. Pase el nombre de la opción como una cadena seguida del valor que desea que sea. Puede pasar cualquier número de opciones en la misma línea:

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

También puede restablecer una opción a su valor predeterminado de la siguiente manera:

pd.reset_option('display.max_rows')

Y restablecer todos ellos volver:

pd.reset_option('all')

Todavía es perfectamente bueno establecer opciones a través de pd.set_option. Simplemente encuentro que usar los atributos directamente es más fácil y hay menos necesidad de get_option y set_option.

 12
Author: Ted Petrou,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-04 17:46:38

Como @hanleyhansen señaló en un comentario, a partir de la versión 0.18.1, la opción display.height está obsoleta, y dice "use display.max_rows en su lugar". Así que solo tienes que configurarlo así:

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

Ver las Notas de la versión de - documentación de pandas 0.18.1 :

Pantalla obsoleta.altura, pantalla.ancho es ahora solo una opción de formato no controla la activación de resumen, similar a

 6
Author: nealmcb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-08 00:39:45

Como en esta respuesta a una pregunta similar, no hay necesidad de hackear la configuración. Es mucho más sencillo escribir:

print(foo.to_string())
 1
Author: Ninjakannon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-05 14:47:17

Ya se señaló en este comentario y en esta respuesta , pero trataré de dar una respuesta más directa a la pregunta:

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 está disponible desde pandas 0.13.1 ( pandas 0.13.1 notas de la versión). De acuerdo con este ,

[it] le permite ejecutar un codeblock con un conjunto de opciones que vuelven a la configuración anterior cuando sale del bloque with.

 1
Author: Guilherme Beltramini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-19 23:54:37