Guarde la tabla del marco de datos de Pandas como PNG

Salman Mehmood 15 febrero 2024
  1. El problema de convertir la tabla de tramas de datos de Pandas en una imagen PNG
  2. Convierta la tabla de marco de datos de Pandas en una imagen PNG con Matplotlib
  3. Convierta la tabla de marco de datos de Pandas en una imagen PNG con Plotly y Kaleido
Guarde la tabla del marco de datos de Pandas como PNG

El objetivo principal de este artículo es demostrar cómo un dataframe puede convertirse en una tabla y guardarse como una imagen PNG en Pandas. También aprenderemos a qué problema nos enfrentamos cuando convertimos la tabla de marco de datos de Pandas en una imagen PNG.

El problema de convertir la tabla de tramas de datos de Pandas en una imagen PNG

El manejo y la operación de datos es crucial en esta era tecnológica, especialmente cuando su escala está aumentando a una edad tremenda. Esto requiere diferentes métodos y prácticas para poder almacenar y operar con los datos.

Pandas es un módulo de Python que tiene como objetivo permitir a sus usuarios operar y analizar datos de muchas maneras. Se ha vuelto bastante popular con el tiempo, y lo mismo ocurre con Python, ya que continúa ganando popularidad a un ritmo tremendo.

El Dataframe es una de las herramientas más utilizadas para el manejo de datos tabulares, a menudo muy útil para organizar datos a gran escala. A veces, es posible que sea necesario almacenar la tabla generada en un estado visual, como en una imagen PNG.

Considere el siguiente código.

import pandas as pd

df = pd.DataFrame()
df["date"] = ["2016-04-01", "2016-04-02", "2016-04-03", "2016-04-03", "2016-04-03"]
df["calories"] = [2200, 2100, 1500, 2200, 2100]
df["sleep hours"] = [8, 7.5, 8.2, 3, 4]
df["gym"] = [True, False, False, True, True]

print(df)

Producción :

         date  calories  sleep hours    gym
0  2016-04-01      2200          8.0   True
1  2016-04-02      2100          7.5  False
2  2016-04-03      1500          8.2  False
3  2016-04-03      2200          3.0   True
4  2016-04-03      2100          4.0   True

La siguiente ilustración muestra una tabla que controla la ingesta calórica diaria, la cantidad de horas que pasa durmiendo y la cantidad total de tiempo que pasa haciendo ejercicio.

El ejemplo mencionado aquí es relativamente corto, pero si los datos son a gran escala, puede ser adecuado (según los requisitos) convertir la tabla en una imagen para que se pueda ver independientemente del código o para otro procesamiento.

Se pueden tomar varios enfoques para resolver este problema, algunos de los cuales se incluyen en la siguiente lista:

Convierta la tabla de marco de datos de Pandas en una imagen PNG con Matplotlib

Una de las muchas funcionalidades disponibles en el módulo pandas, permite trazar en pantalla las tablas creadas con la ayuda de Matplotlib.

Considere el siguiente código.

import matplotlib.pyplot as plt
import pandas as pd
from pandas.plotting import table

df = pd.DataFrame()
df["date"] = ["2016-04-01", "2016-04-02", "2016-04-03"]
df["calories"] = [2200, 2100, 1500]
df["sleep hours"] = [8, 7.5, 8.2]
df["gym"] = [True, False, False]

ax = plt.subplot(111, frame_on=False)  # no visible frame
ax.xaxis.set_visible(False)  # hide the x axis
ax.yaxis.set_visible(False)  # hide the y axis
table(ax, df, loc="center")  # where df is your data frame
plt.savefig("mytable.png")

Lo que da la imagen de salida:

Usando Matplotlib

Una vez que hemos creado la tabla, podemos usar matplotlib para generar un gráfico. Gracias al soporte de pandas para trazar sus tablas usando matplotlib, el proceso general es bastante simple.

Primero, necesitamos importar pandas, matplotlib.pyplot y table desde matplotlib y pandas.plotting, respectivamente. Estos módulos son los que hacen que esta solución pueda trazar la tabla.

Después de haber importado el módulo pandas, crearemos una instancia de la clase DataFrame y la almacenaremos en una variable que se denota con el nombre df. De acuerdo con nuestros requisitos, se crea una columna con la etiqueta “fecha”, seguida de la adición de cinco fechas diferentes a la columna.

Se lleva a cabo el mismo procedimiento para crear tres columnas adicionales, a las que luego se les asignan los nombres “calorías”, “horas de sueño” y “gimnasio”, respectivamente, y se insertan datos relevantes en las columnas recién creadas.

Después de eso, creamos una subparcela usando plt.subplot y la almacenamos en una variable llamada ax. Esto es para garantizar que no se vean marcos en la imagen final.

Una optimización más que se hace es que hemos eliminado las líneas del eje x e y usando ax.xaxis.set_visible() y ax.yaxis.set_visible().

Finalmente, la tabla se genera usando el método table(), pasándola a nuestra subtrama, DataFrame, y una ubicación central para crearla en el centro de la imagen. Una vez hecho esto, se guarda la imagen, llamada mytable.png.

Convierta la tabla de marco de datos de Pandas en una imagen PNG con Plotly y Kaleido

Construido sobre la biblioteca Plotly JavaScript plotly.js, plotly permite a los usuarios de Python crear hermosas visualizaciones interactivas basadas en la web.

Estas visualizaciones se pueden mostrar en cuadernos Jupyter, guardarse como archivos HTML independientes o usarse como parte de aplicaciones web puras creadas en Python usando Dash. plotly fue desarrollado por Plotly Inc.

Kaleido es una biblioteca multiplataforma que genera imágenes estáticas (como png, svg, pdf, etc.), con especial énfasis en eliminar la necesidad de dependencias externas.

plotly se puede instalar fácilmente usando:

pip install plotly

En cuanto a kaleido:

pip install kaleido

Considere el siguiente código.

import plotly.figure_factory as ff
import pandas as pd

df = pd.DataFrame()
df["date"] = ["2016-04-01", "2016-04-02", "2016-04-03", "2016-04-03", "2016-04-03"]
df["calories"] = [2200, 2100, 1500, 2200, 2100]
df["sleep hours"] = [8, 7.5, 8.2, 3, 4]
df["gym"] = [True, False, False, True, True]

fig = ff.create_table(df)
fig.update_layout(
    autosize=False,
    width=500,
    height=200,
)

fig.write_image("table_plotly.png", scale=2)

Lo que da la imagen de salida:

Imagen gráfica

Después de que se haya creado el Dataframe, podemos usar el método create_table de plotly.figure_factory para crear una tabla adecuada para la visualización.

El método create_table se pasa a la instancia Dataframe de la que deseamos hacer una tabla, que se convierte a la forma adecuada para ser vista como PNG.

Si se requiere actualizar la apariencia general del PNG creado de la tabla, su diseño se puede actualizar usando varios atributos dados, como “tamaño automático”, “ancho” y “alto” usando el método update_layout.

Una vez que se ha establecido el diseño según las preferencias, el nuevo PNG ahora se puede guardar usando el método write_image, pasándole el nombre de la imagen y la escala si es necesario.

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

Artículo relacionado - Pandas Dataframe