Mostrar todas las columnas de marcos de datos en un cuaderno Jupyter Python


103

Quiero mostrar todas las columnas en un marco de datos en un Jupyter Notebook. Jupyter muestra algunas de las columnas y agrega puntos a las últimas columnas como en la siguiente imagen:

Captura de pantalla de Juputer

¿Cómo puedo mostrar todas las columnas?

Respuestas:


173

Pruebe la configuración de display max_columns de la siguiente manera:

import pandas as pd
from IPython.display import display

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

O

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

Editar: Pandas 0.11.0 al revés

Esto está en desuso, pero en versiones de Pandas anteriores a 0.11.0, la max_columnsconfiguración se especifica de la siguiente manera:

pd.set_printoptions(max_columns=500)

Debería funcionar a menos que tenga una versión muy antigua de Pandas. He actualizado la respuesta ...
Isma

4
¡No puedo creer que esta sea la forma de hacerlo!
information_interchange

2
Si desea realizar una configuración temporal, puede usar, por ejemplo, with pd.option_context("display.max_rows", 10, "display.max_columns", 5):(consulte Obtener y configurar opciones ).
Benjamin B.

35

Sé que esta pregunta es un poco vieja, pero lo siguiente funcionó para mí en un Jupyter Notebook con pandas 0.22.0 y Python 3:

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

También puede hacer lo mismo con las filas:

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

Esto ahorra la importación de IPython, y hay más opciones en la documentación de pandas.set_option: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.set_option.html


1
Puede utilizar la palabra clave Ninguno en <número de columnas> si no conoce el número de columnas de antemano.
kmundnic

9

Python 3.x para DataFrames grandes (pero no demasiado grandes)

Tal vez porque tengo una versión anterior de pandas, pero en el cuaderno Jupyter esto funciona para mí

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

df=pd.read_pickle('Data1')
display(HTML(df.to_html()))

Intenté esto pero arruinó mi sesión de jupyter y se quedó sin memoria. Mi PC tiene SSD y 8 GB de memoria RAM ...
FLBKernel

@FLBKernel no me ha hecho esto, tal vez tu Dataframe sea mucho más grande que el mío. ¿Cuál fue tu salida? ¿Probaste otro método y funcionó para ti? si es así comparte tu conocimiento. Gracias.
rsc05

Todavía no he encontrado ningún método, pero te lo haré saber tan pronto como pueda resolver este problema. Y sí, mi marco de datos probablemente era más grande, así que señalemos que esto no es recomendable para marcos de datos grandes
FLBKernel

1
@FLBKernel Mi marco de datos también era grande. Pero no sabía hasta qué punto puede ser grande. Lo señalaré. ¡Gracias!
rsc05

El mío tiene 107.763 filas y 15 columnas. Podemos establecer -quizá- que más de 100k filas y 15 columnas esta respuesta no es recomendable. Aunque me gusta el título "grande (pero no demasiado)" :)
FLBKernel

5

Recomiendo configurar las opciones de visualización dentro de un administrador de contexto para que solo afecte a una única salida. Si también desea imprimir una versión html "bonita", definiría una función y mostraría el marco de datos dfusando 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()))

Como han mencionado otros, tenga cuidado de llamar a esto solo en un marco de datos de tamaño razonable.


1

puede usar pandas.set_option (), para la columna, puede especificar cualquiera de estas opciones

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

Para la columna de impresión completa, puede usar así

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

ingrese la descripción de la imagen aquí


0

Si desea mostrar todas las filas establecidas como abajo

pd.options.display.max_rows = None

Si desea mostrar todas las columnas configuradas como abajo

pd.options.display.max_columns = None
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.