¿Cómo amplío la visualización de salida para ver más columnas de un Pandas DataFrame?
¿Hay alguna manera de ampliar la visualización de la salida en modo interactivo o de ejecución de script?
Específicamente, estoy usando la describe()
función en Pandas DataFrame
. Cuando DataFrame
tiene cinco columnas (etiquetas) de ancho, obtengo las estadísticas descriptivas que quiero. Sin embargo, si DataFrame
tiene más columnas, las estadísticas se suprimen y se devuelve algo como esto:
>> Index: 8 entries, count to max
>> Data columns:
>> x1 8 non-null values
>> x2 8 non-null values
>> x3 8 non-null values
>> x4 8 non-null values
>> x5 8 non-null values
>> x6 8 non-null values
>> x7 8 non-null values
El valor "8" se proporciona si hay 6 o 7 columnas. ¿A qué se refiere el "8"?
Ya intenté arrastrar la ventana IDLE más grande, así como aumentar las opciones de ancho de "Configurar IDLE", sin éxito.
Actualización: Pandas 0.23.4 en adelante
Esto no es necesario. Pandas detecta automáticamente el tamaño de la ventana de su terminal si configura pd.options.display.width = 0
. (Para versiones anteriores, consulte la parte inferior).
pandas.set_printoptions(...)
es obsoleto. En su lugar, utilice pandas.set_option(optname, val)
, o equivalentemente pd.options.<opt.hierarchical.name> = val
. Como:
import pandas as pd
pd.set_option('display.max_rows', 500)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)
Aquí está la ayuda paraset_option
:
set_option(pat,value) - Establece el valor de la opción especificada Opciones Disponibles: display.[chop_threshold, colheader_justify, column_space, date_dayfirst, date_yearfirst, codificación, expand_frame_repr, float_format, altura, ancho_línea, columnas_max, ancho_col_max, columnas_info_max, columnas_max_info, max_rows, max_seq_items, mpl_style, multi_sparse, notebook_repr_html, pprint_nest_profundidad, precisión, ancho] modo.[sim_interactive, use_inf_as_null] Parámetros ---------- pat - str/regexp que debería coincidir con una sola opción. Nota: se admiten coincidencias parciales por conveniencia, pero a menos que use el nombre completo de la opción (p. ej., *xyzoption_name*), su código puede fallar en el futuro versiones si se introducen nuevas opciones con nombres similares. valor: nuevo valor de la opción. Devoluciones ------- Ninguno aumentos ------ KeyError si no existe tal opción display.chop_threshold: [predeterminado: Ninguno] [actualmente: Ninguno] : flotante o Ninguno si se establece en un valor flotante, todos los valores flotantes son más pequeños que el umbral dado Repr y amigos lo mostrarán exactamente como 0. display.colheader_justify: [predeterminado: derecho] [actualmente: derecho] : 'izquierda derecha' Controla la justificación de los encabezados de columna. utilizado por DataFrameFormatter. display.column_space: [predeterminado: 12] [actualmente: 12]No hay descripción disponible. display.date_dayfirst: [predeterminado: Falso] [actualmente: Falso] : booleano Cuando es Verdadero, imprime y analiza las fechas con el día primero, por ejemplo, 20/01/2005. display.date_yearfirst: [predeterminado: Falso] [actualmente: Falso] : booleano Cuando es Verdadero, imprime y analiza las fechas con el año primero, por ejemplo, 2005/01/20 display.encoding: [predeterminado: UTF-8] [actualmente: UTF-8] : cadena/unicode El valor predeterminado es la codificación detectada de la consola. Especifica la codificación que se utilizará para las cadenas devueltas por to_string, generalmente son cadenas destinadas a mostrarse en la consola. display.expand_frame_repr: [predeterminado: Verdadero] [actualmente: Verdadero] : booleano Si se debe imprimir la representación completa de DataFrame para DataFrames amplios en varias líneas, todavía se respeta `max_columns`, pero la salida envolvente en varias "páginas" si su ancho excede `display.width`. display.float_format: [predeterminado: Ninguno] [actualmente: Ninguno] : invocable El invocable debe aceptar un número de coma flotante y devolver una cadena con el formato deseado del número. esto se usa en algunos lugares como SeriesFormatter. Consulte core.format.EngFormatter para ver un ejemplo. display.height: [predeterminado: 60] [actualmente: 1000] : En t Obsoleto. (En desuso, use `display.height` en su lugar). display.line_width: [predeterminado: 80] [actualmente: 1000] : En t Obsoleto. (En desuso, use `display.width` en su lugar). display.max_columns: [predeterminado: 20] [actualmente: 500] : En t max_rows y max_columns se utilizan en los métodos __repr__() para decidir si to_string() o info() se utiliza para representar un objeto en una cadena. En caso Python/IPython se está ejecutando en una terminal, esto se puede configurar en 0 y Pandas detectará automáticamente el ancho del terminal y cambiará a uno más pequeño formato en caso de que todas las columnas no encajen verticalmente. El cuaderno IPython, IPython qtconsole o IDLE no se ejecutan en una terminal y, por lo tanto, no es posible realizar una autodetección correcta. El valor 'Ninguno' significa ilimitado. display.max_colwidth: [predeterminado: 50] [actualmente: 50] : En t El ancho máximo en caracteres de una columna en la repr de una estructura de datos de Pandas. Cuando la columna se desborda, aparece un "..." El marcador de posición está incrustado en la salida. display.max_info_columns: [predeterminado: 100] [actualmente: 100] : En t max_info_columns se utiliza en el método DataFrame.info para decidir si Se imprimirá la información por columna. display.max_info_rows: [predeterminado: 1690785] [actualmente: 1690785] : int o Ninguno max_info_rows es el número máximo de filas para las que se creará un marco. realice una verificación nula en sus columnas al reproducir en una consola. El valor predeterminado es 1.000.000 de filas. Entonces, si un DataFrame tiene más 1.000.000 de filas no se realizará ninguna comprobación nula en el columnas y por lo tanto la representación tomará mucho menos tiempo para mostrar en una sesión interactiva. Un valor de Ninguno significa siempre realice una verificación nula al repetir. display.max_rows: [predeterminado: 60] [actualmente: 500] : En t Esto establece el número máximo de filas que Pandas debe generar al imprimir. realizar diversas salidas. Por ejemplo, este valor determina si repr() para un marco de datos se imprime completo o solo un resumen. El valor 'Ninguno' significa ilimitado. display.max_seq_items: [predeterminado: Ninguno] [actualmente: Ninguno] : int o Ninguno al imprimir una secuencia larga, no más de `max_seq_items` se imprimirá. Si se omiten elementos, se indicarán mediante la adición de "..." a la cadena resultante. Si se establece en Ninguno, la cantidad de elementos que se imprimirán es ilimitada. display.mpl_style: [predeterminado: Ninguno] [actualmente: Ninguno] : booleano Establecer esto en 'predeterminado' modificará los rcParams utilizados por matplotlib para dar a las tramas un estilo visual más agradable de forma predeterminada. Establecer esto en Ninguno/Falso restaura los valores a su valor inicial. display.multi_sparse: [predeterminado: Verdadero] [actualmente: Verdadero] : booleano Visualización MultiIndex "sparsify" (no mostrar imágenes repetidas) elementos en niveles externos dentro de grupos) display.notebook_repr_html: [predeterminado: Verdadero] [actualmente: Verdadero] : booleano Cuando es Verdadero, el cuaderno IPython utilizará representación html para Objetos Pandas (si está disponible). display.pprint_nest_ Depth: [predeterminado: 3] [actualmente: 3] : En t Controla el número de niveles anidados que se procesarán durante la impresión bonita display.precision: [predeterminado: 7] [actualmente: 7] : En t Precisión de salida de coma flotante (número de dígitos significativos). Esto es solo una sugerencia display.width: [predeterminado: 80] [actualmente: 1000] : En t Ancho de la pantalla en caracteres. En caso de que Python/IPython se esté ejecutando En un terminal, esto se puede configurar en Ninguno y Pandas detectará automáticamente el ancho. Tenga en cuenta que IPython notebook, IPython qtconsole o IDLE no se ejecutan en un terminal y por lo tanto no es posible detectar correctamente el ancho. mode.sim_interactive: [predeterminado: Falso] [actualmente: Falso] : booleano Si se debe simular el modo interactivo con fines de prueba mode.use_inf_as_null: [predeterminado: Falso] [actualmente: Falso] : booleano Verdadero significa tratar Ninguno, NaN, INF, -INF como nulo (forma antigua), Falso significa que Ninguno y NaN son nulos, pero INF, -INF no son nulos (nueva manera). Definición de llamada: pd.set_option(self, *args, **kwds)
Información de la versión anterior. Gran parte de esto ha quedado obsoleto.
Como mencionó @bmu , Pandas detecta automáticamente (de forma predeterminada) el tamaño del área de visualización, se utilizará una vista de resumen cuando una representación de objeto no cabe en la pantalla. Mencionaste cambiar el tamaño de la ventana IDLE, sin ningún efecto. Si lo hace, print df.describe().to_string()
¿cabe en la ventana IDLE?
El tamaño del terminal está determinado por pandas.util.terminal.get_terminal_size()
(obsoleto y eliminado), esto devuelve una tupla que contiene el (width, height)
de la pantalla. ¿La salida coincide con el tamaño de su ventana IDLE? Puede haber un problema (hubo uno antes al ejecutar una terminal en Emacs).
Tenga en cuenta que es posible omitir la detección automática; pandas.set_printoptions(max_rows=200, max_columns=10)
nunca cambiará a la vista de resumen si el número de filas y columnas no excede los límites dados.
La opción 'max_colwidth' ayuda a ver la forma no truncada de cada columna.
Prueba esto:
pd.set_option('display.expand_frame_repr', False)
De la documentación:
display.expand_frame_repr: booleano
Ya sea para imprimir la representación completa de DataFrame para DataFrames anchos en varias líneas, aún se respeta max_columns, pero la salida abarcará varias "páginas" si su ancho excede display.width. [predeterminado: Verdadero] [actualmente: Verdadero]
Ver: pandas.set_option .
Si desea configurar opciones temporalmente para mostrar un DataFrame grande, puede usar option_context :
with pd.option_context('display.max_rows', None, 'display.max_columns', None):
print (df)
Los valores de las opciones se restauran automáticamente cuando sales del with
bloque.