¿Cómo puedo imprimir un marco de datos de pandas como una buena tabla basada en texto, como la siguiente?
+------------+---------+-------------+
| column_one | col_two | column_3 |
+------------+---------+-------------+
| 0 | 0.0001 | ABCD |
| 1 | 1e-005 | ABCD |
| 2 | 1e-006 | long string |
| 3 | 1e-007 | ABCD |
+------------+---------+-------------+
tabulate([list(row) for row in df.values], headers=list(df.columns))
para deshacerse del índiceprint(tabulate(df, **kwargs))
y no simplementetabulate(df, **kwargs)
; este último mostrará todas las líneas nuevas\n
....showindex=False
Un enfoque simple es generar la salida como html, lo que pandas hace de inmediato :
fuente
pandas> = 1.0
Si desea una función incorporada para volcar sus datos en alguna rebaja de github, ahora tiene una. Eche un vistazo a
to_markdown
:Así es como se ve en github:
Tenga en cuenta que aún necesitará tener el
tabulate
paquete instalado.fuente
Si está en el cuaderno Jupyter, puede ejecutar el siguiente código para mostrar interactivamente el marco de datos en una tabla bien formateada.
Esta respuesta se basa en la respuesta to_html ('temp.html') anterior, pero en lugar de crear un archivo, muestra la tabla bien formateada directamente en el cuaderno:
Crédito para este código debido al ejemplo en: Mostrar DataFrame como tabla en iPython Notebook
fuente
Puede usar prettytable para representar la tabla como texto. El truco consiste en convertir el data_frame en un archivo csv en la memoria y hacer que Prettytable lo lea. Aquí está el código:
fuente
prettytable
se considera en gran medida abandonware. También es una pena, ya que era un buen paquete. :(prettytable
no ha tenido un lanzamiento desde el 6 de abril de 2013.tabulate
es su predecesor espiritual y tiene lanzamientos regulares, el más reciente el 24 de enero de 2019.Usé la respuesta de Ofer por un tiempo y la encontré genial en la mayoría de los casos. Desafortunadamente, debido a inconsistencias entre pandas's to_csv y prettytable 's from_csv, tuve que usar prettytable de una manera diferente.
Un caso de falla es un marco de datos que contiene comas:
Prettytable genera un error de forma:
La siguiente función maneja este caso:
Si no le importa el índice, use:
fuente
format_for_print()
función no parece estar imprimiendo el índice del Pandas DataFrame. Configuré el índice usandodf.index.name = 'index'
pero esto no imprime la columna de índice con un nombre.El seguimiento de la respuesta de la marca, si estas no usando Jupyter por alguna razón, por ejemplo, desea hacer alguna prueba rápida en la consola, se puede utilizar el
DataFrame.to_string
método, que trabaja a partir de - al menos - pandas 0.12 (2014) en adelante .fuente
Quizás estés buscando algo como esto:
fuente
Quería una impresión en papel de un marco de datos, pero también quería agregar algunos resultados y comentarios en la misma página. He trabajado en lo anterior y no pude obtener lo que quería. Terminé usando declaraciones file.write (df1.to_csv ()) y file.write (",,, blah ,,,,,, bla") para obtener mis extras en la página. Cuando abrí el archivo csv, fue directamente a una hoja de cálculo que imprimió todo en el formato y ritmo correctos.
fuente