tablas recorrer notebook libreria documentacion datos data analisis python pandas dataframe

python - recorrer - Impresión bonita de una serie completa de Pandas/Marco de datos



recorrer data frame pandas (9)

Trabajo mucho con Series y DataFrames en el terminal. El valor predeterminado __repr__ para una Serie devuelve una muestra reducida, con algunos valores de cabeza y cola, pero el resto falta.

¿Existe una forma integrada de imprimir de manera bonita toda la serie / marco de datos? Idealmente, admitiría una alineación adecuada, tal vez bordes entre columnas, e incluso códigos de colores para las diferentes columnas.


Claro, si esto surge mucho, haz 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

def print_full(x): pd.set_option(''display.max_rows'', len(x)) print(x) pd.reset_option(''display.max_rows'')

En cuanto a la coloración, ser demasiado elaborado con los colores me parece contraproducente, pero estoy de acuerdo en que algo como el bootstrap''s .table-striped sería bueno. Siempre se puede crear un problema para sugerir esta característica.


Después de importar pandas, como alternativa al uso del administrador de contexto, configure estas pandas.pydata.org/pandas-docs/stable/options.html para mostrar los marcos de datos completos:

pd.set_option(''display.max_columns'', None) # or 1000 pd.set_option(''display.max_rows'', None) # or 1000 pd.set_option(''display.max_colwidth'', -1) # or 199

Para la lista completa de opciones útiles, vea:

pd.describe_option(''display'')


Esta respuesta es una variación de la respuesta anterior por 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 pandas.pydata.org/pandas-docs/stable/options.html para mostrar grandes marcos de datos:

def set_pandas_options() -> None: pd.options.display.max_columns = 1000 pd.options.display.max_rows = 1000 pd.options.display.max_colwidth = 199 pd.options.display.width = None # pd.options.display.precision = 2 # set as needed set_pandas_options()

Después de esto, puede usar la display(df) o solo df si usa una notebook, de lo contrario print(df) .


No hay necesidad de hackear la configuración. Hay una forma sencilla:

print(df.to_string())


Prueba esto

pd.set_option(''display.height'',1000) pd.set_option(''display.max_rows'',500) pd.set_option(''display.max_columns'',500) pd.set_option(''display.width'',1000)


Puede lograr esto utilizando el método de abajo. acaba de pasar el total no. de columnas presentes en el marco de datos como arg para

''display.max_columns''

Por ejemplo:

df= DataFrame(..) with pd.option_context(''display.max_rows'', None, ''display.max_columns'', df.shape[1]): print(df)


Si está utilizando Ipython Notebook (Jupyter). Puedes usar HTML

from IPython.core.display import HTML display(HTML(df.to_html()))


También puede usar el option_context , con una o más opciones:

with pd.option_context(''display.max_rows'', None, ''display.max_columns'', None): print(df)

Esto devolverá automáticamente las opciones a sus valores predeterminados.

Si está trabajando en jupyter-notebook, usar la display lugar de print usará la lógica de visualización rica en jupyter.


Utilice el paquete tabular:

pip install tabulate

Y considere el siguiente ejemplo de uso:

import pandas as pd from io import StringIO from tabulate import tabulate c = """Chromosome Start End chr1 3 6 chr1 5 7 chr1 8 9""" df = pd.read_table(StringIO(c), sep="/s+", header=0) print(tabulate(df, headers=''keys'', tablefmt=''psql'')) +----+--------------+---------+-------+ | | Chromosome | Start | End | |----+--------------+---------+-------| | 0 | chr1 | 3 | 6 | | 1 | chr1 | 5 | 7 | | 2 | chr1 | 8 | 9 | +----+--------------+---------+-------+