Pandas Tables: formatear DataFrames como tablas
Un DataFrame de la Biblioteca Python Pandas puede utilizarse para presentar datos en forma de tabla. Existen varias opciones para mostrar conjuntos de datos de manera estructurada y clara en forma de Pandas Tables o tablas en Pandas. [TOC]
- Tiempo de actividad de 99.99 % y seguridad garantizada
- Aumenta el rendimiento según el tráfico de tu página web
- Incluye dominio, SSL, e-mail y soporte 24/7
Visualización estándar de un DataFrame de Pandas como tabla
La forma más fácil de mostrar un DataFrame de Pandas como tabla es mediante la función print de Python. Esta te devuelve una representación en forma de tabla del DataFrame:
import pandas as pd
# Crear un DataFrame de ejemplo
data = {
'Nombre': ['Anna', 'Zoe', 'Charlie', 'Daniela'],
'Edad': [23, 30, 35, 29],
'Profesión': ['Ingeniera', 'Maestra', 'Médico', 'Diseñadora']
}
df = pd.DataFrame(data)
# Mostrar el DataFrame como tabla
print(df)pythonEl DataFrame de Pandas se muestra como una tabla simple en la consola. La salida de la tabla se ve de la siguiente manera:
Nombre Edad Profesión
0 Anna 23 Ingeniera
1 Zoe 30 Maestra
2 Charlie 35 Médico
3 Daniela 29 DiseñadoraSi usas Jupyter Notebook no necesitas ni siquiera la función print() para mostrar tu DataFrame de Pandas en forma de tabla. Una simple llamada al DataFrame es suficiente para que se presente en formato tabular.
Visualización con to_string() para un control completo
La función integrada de Pandas DataFrame.to_string() convierte un DataFrame en una string de Python. Permite mostrar el DataFrame completo como una tabla, incluso si es muy grande. A continuación, se utiliza el mismo DataFrame que en el primer ejemplo:
# Mostrar el DataFrame completo como tabla
print(df.to_string())pythonEl resultado sería el siguiente:
Nombre Edad Profesión
0 Anna 23 Ingeniera
1 Zoe 30 Maestra
2 Charlie 35 Médico
3 Daniela 29 DiseñadoraCómo utilizar style para formatear la tabla
Pandas también ofrece una forma integrada de resaltar y formatear DataFrames: la propiedad style. En el siguiente código, se resaltarán los valores máximos del conjunto de datos de nuestro ejemplo:
# Mostrar DataFrame con valores máximos resaltados
df.style.highlight_max(axis=0)pythonEn un Jupyter Notebook, el DataFrame se mostrará con los valores máximos resaltados en color.
Uso de to_html() para frameworks web
Con DataFrame.to_html() puedes mostrar tu DataFrame como una tabla HTML con una sola llamada a la función, lo que permite integrarlo directamente en aplicaciones web. Para hacerlo, simplemente debes llamar a la función en el DataFrame:
# Mostrar DataFrame como tabla HTML
html_table = df.to_html()
print(html_table)pythonComo resultado, obtendrás código HTML. Este código se puede incrustar en páginas web.
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>Nombre</th>
<th>Edad</th>
<th>Profesión</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>Anna</td>
<td>23</td>
<td>Ingeniera</td>
</tr>
<tr>
<th>1</th>
<td>Zoe</td>
<td>30</td>
<td>Maestra</td>
</tr>
<tr>
<th>2</th>
<td>Charlie</td>
<td>35</td>
<td>Médico</td>
</tr>
<tr>
<th>3</th>
<td>Daniela</td>
<td>29</td>
<td>Diseñadora</td>
</tr>
</tbody>
</table>htmlDe manera similar a to_html(), la función de Pandas DataFrame.to_markdown() genera una tabla en formato Markdown en lugar de HTML. Este formato es ampliamente utilizado en muchas herramientas de documentación o blogs.
Uso de tabulate para diferentes formatos de tabla
Con el módulo externo de Python tabulate, se pueden mostrar DataFrames de Pandas en varios formatos tabulares. Se admiten, entre otros, formatos como GitHub Flavored Markdown, reStructuredText o texto plano. El formato deseado se especifica simplemente pasando el parámetro tablefmt. A continuación, te mostramos el DataFrame en formato Markdown de GitHub:
from tabulate import tabulate
# Mostrar el DataFrame como tabla en formato Markdown
print(tabulate(df, headers='keys', tablefmt='github'))pythonSe produce el siguiente resultado:
| | Nombre | Edad | Profesión |
| --- | --- | --- | --- |
| 0 | Anna | 23 | Ingeniera |
| 1 | Zoe | 30 | Maestra |
| 2 | Charlie | 35 | Médico |
| 3 | Daniela | 29 | Diseñadora |
