Trabajo mucho con Series y DataFrames en la terminal. El valor por defecto__repr__
para una serie devuelve una muestra reducida, con algunos valores de cabeza y cola, pero falta el resto.
¿Hay alguna forma integrada de imprimir con bonitos toda la serie / marco de datos? Idealmente, sería compatible con la alineación adecuada, tal vez los bordes entre las columnas, y tal vez incluso la codificación de color para las diferentes columnas.
pd.set_option('display.max_rows', 1000)
por ejemplo, el color es otra cosa, supongo que está hablando de colorear la salida html repr. No creo que esto esté integrado en absoluto.display.max_rows
, el problema es que la mayoría de las veces quiero truncar la salida. Solo ocasionalmente deseo ver la salida completa. Podría establecer la opción en un valor muy alto, usar el valor predeterminado__repr__
y luego revertir el valor, pero eso parece un poco engorroso, y también podría escribir mi propia función de impresión bonita en ese caso.set_option
que admita la coloración, tal vez sea algo que podría hacerse como un complemento para aplicar algunos formatos CSS o de salida. Esta es la única forma en que creo que podría lograr estoRespuestas:
También puede usar el
option_context
, con una o más opciones:Esto devolverá automáticamente las opciones a sus valores anteriores.
Si está trabajando en jupyter-notebook, usar en
display(df)
lugar deprint(df)
usará la lógica de pantalla rica de jupyter (así) .fuente
None
desactivarlos. El uso de loswith pd.option_context()
documentos de opciones de lo que está pasando muy clara y explícitamente, y deja claro cómo lograr otros cambios en la producción de formato que puede ser deseable, por ejemplo, utilizandoprecision
,max_colwidth
,expand_frame_repr
,colheader_justify
,date_yearfirst
,encoding
, y muchos muchos más: pandas.pydata.org/pandas -docs / stable /display(df)
lugar deprint(df)
No es necesario hackear la configuración. Hay una manera simple:
fuente
with pd.option_context()
documentos de opciones de lo que está pasando mucho más clara y explícitamente, y deja claro cómo lograr otros cambios en la producción de formato que se pueden desear, utilizando por ejemploprecision
,max_colwidth
,expand_frame_repr
,colheader_justify
,date_yearfirst
,encoding
, y muchos muchos más: pandas.pydata.org/ pandas-docs / stable /pd.set_option('display.max_rows', None)
justo antes de imprimirdf
.Claro, si esto surge mucho, haga una función como esta. Incluso puede configurarlo para que se cargue cada vez que inicie IPython: https://ipython.org/ipython-doc/1/config/overview.html
En cuanto a la coloración, ser demasiado elaborado con los colores me suena contraproducente, pero estoy de acuerdo en que algo como bootstrap
.table-striped
sería bueno. Siempre puede crear un problema para sugerir esta función.fuente
Después de importar pandas, como alternativa al uso del administrador de contexto, configure estas opciones para mostrar marcos de datos completos:
Para obtener una lista completa de opciones útiles, consulte:
fuente
-1
valor int en lugar deNone
, si desea una representación completadisplay.
en el nombre de la opción no parece ser necesario. Por ejemplo,set_option('max_columns')
funciona igual de bien.Use el paquete tabulado:
Y considere el siguiente uso de ejemplo:
fuente
pd_series.to_frame()
Si está utilizando Ipython Notebook (Jupyter). Puedes usar HTML
fuente
Utilizando
pd.options.display
Esta respuesta es una variación de la respuesta anterior de lucidyan . Hace que el código sea más legible al evitar el uso de
set_option
.Después de importar pandas, como alternativa al uso del administrador de contexto, configure estas opciones para mostrar grandes marcos de datos:
Después de esto, puede usar cualquiera
display(df)
o solodf
si está usando una computadora portátil, de lo contrarioprint(df)
.Utilizando
to_string
Pandas 0.25.3 tiene
DataFrame.to_string
ySeries.to_string
métodos que aceptan opciones de formato.Utilizando
to_markdown
Si lo que necesita es un resultado de descuento, Pandas 1.0.0 tiene
DataFrame.to_markdown
ySeries.to_markdown
métodos.Utilizando
to_html
Si lo que necesita es salida HTML, Pandas 0.25.3 tiene un
DataFrame.to_html
método pero no unSeries.to_html
. Tenga en cuenta que aSeries
se puede convertir a aDataFrame
.fuente
Prueba esto
fuente
Puede lograr esto utilizando el siguiente método. solo pasa el total no. de columnas presentes en el DataFrame como arg para
Por ejemplo:
fuente
Intente usar la función display (). Esto usaría automáticamente barras de desplazamiento horizontal y vertical y con esto puede mostrar diferentes conjuntos de datos fácilmente en lugar de usar print ().
display () también admite la alineación adecuada.
Sin embargo, si desea que el conjunto de datos sea más hermoso, puede verificarlo
pd.option_context()
. Tiene muchas opciones para mostrar claramente el marco de datos.Nota: estoy usando los cuadernos Jupyter.
fuente