Speichern Sie die Pandas Dataframe-Tabelle als PNG

Salman Mehmood 15 Februar 2024
  1. Das Problem beim Konvertieren der Pandas Dataframe-Tabelle in ein PNG-Bild
  2. Konvertieren Sie die Pandas Dataframe-Tabelle mit Matplotlib in ein PNG-Bild
  3. Konvertieren Sie die Pandas Dataframe-Tabelle mit Plotly und Kaleido in ein PNG-Bild
Speichern Sie die Pandas Dataframe-Tabelle als PNG

Das Hauptziel dieses Artikels ist es zu zeigen, wie ein Datenrahmen in eine Tabelle umgewandelt und als PNG-Bild in Pandas gespeichert werden kann. Wir werden auch erfahren, auf welches Problem wir stoßen, wenn wir die Pandas-Datenrahmentabelle in ein PNG-Bild konvertieren.

Das Problem beim Konvertieren der Pandas Dataframe-Tabelle in ein PNG-Bild

Der Umgang mit und der Umgang mit Daten ist in diesem technologischen Zeitalter von entscheidender Bedeutung, insbesondere wenn ihr Umfang in einem enormen Alter zunimmt. Dies erfordert unterschiedliche Methoden und Praktiken, um die Daten speichern und verarbeiten zu können.

Pandas ist ein Python-Modul, das darauf abzielt, seinen Benutzern zu ermöglichen, Daten auf vielfältige Weise zu bearbeiten und zu analysieren. Es ist im Laufe der Zeit ziemlich populär geworden, und dasselbe gilt für Python, da es weiterhin mit enormer Geschwindigkeit an Popularität gewinnt.

Der Dataframe ist eines der am weitesten verbreiteten Werkzeuge für den Umgang mit tabellarischen Daten und oft sehr hilfreich bei der Organisation von Daten in großem Umfang. Manchmal muss die generierte Tabelle möglicherweise in einem visuellen Zustand gespeichert werden, z. B. in einem PNG-Bild.

Betrachten Sie den folgenden Code.

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)

Ausgang:

         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

Die folgende Abbildung zeigt eine Tabelle, die die tägliche Kalorienaufnahme, die Anzahl der Stunden, die mit Schlafen verbracht wurden, und die Gesamtzeit, die mit Training verbracht wurde, im Auge behält.

Das hier erwähnte Beispiel ist relativ kurz, aber wenn die Daten sehr umfangreich sind, kann es (durch Anforderungen) geeignet sein, die Tabelle in ein Bild umzuwandeln, damit sie unabhängig vom Code oder für eine andere Verarbeitung angezeigt werden kann.

Zur Lösung dieses Problems können mehrere Ansätze verfolgt werden, von denen einige in der folgenden Liste aufgeführt sind:

Konvertieren Sie die Pandas Dataframe-Tabelle mit Matplotlib in ein PNG-Bild

Eines der vielen Features, die im Modul pandas verfügbar sind, ermöglicht es, erstellte Tabellen mit Hilfe von Matplotlib auf dem Bildschirm zu plotten.

Betrachten Sie den folgenden Code.

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")

Was das Ausgabebild ergibt:

Mit Matplotlib

Nachdem wir die Tabelle erstellt haben, können wir mit matplotlib einen Plot erzeugen. Dank der pandas-Unterstützung, seine Tabellen mit matplotlib zu plotten, ist der Gesamtprozess recht einfach.

Zuerst müssen wir pandas, matplotlib.pyplot und table aus matplotlib bzw. pandas.plotting importieren. Diese Module machen diese Lösung in der Lage, die Tabelle zu plotten.

Nachdem wir das pandas-Modul importiert haben, erstellen wir anschliessend eine Instanz der DataFrame-Klasse und speichern diese in einer Variablen mit dem Namen df. Gemäß unseren Anforderungen wird eine Spalte mit der Bezeichnung Datum erstellt, gefolgt vom Hinzufügen von fünf verschiedenen Datumsangaben zu der Spalte.

Das gleiche Verfahren wird durchgeführt, um drei zusätzliche Spalten zu erstellen, die dann jeweils die Namen Kalorien, Schlafstunden und Fitnessstudio erhalten und relevante Daten in die neu erstellten Spalten eingefügt werden.

Danach erstellen wir mit plt.subplot einen Subplot und speichern ihn in einer Variablen namens ax. Dadurch wird sichergestellt, dass im endgültigen Bild keine Rahmen sichtbar sind.

Eine weitere durchgeführte Optimierung besteht darin, dass wir die Achsenlinien x und y mit ax.xaxis.set_visible() und ax.yaxis.set_visible() entfernt haben.

Schließlich wird die Tabelle mit der Methode table() generiert und an unseren Subplot DataFrame und einen zentralen Ort übergeben, um sie in der Mitte des Bildes zu erstellen. Danach wird das Bild mit dem Namen mytable.png gespeichert.

Konvertieren Sie die Pandas Dataframe-Tabelle mit Plotly und Kaleido in ein PNG-Bild

Aufbauend auf der Plotly-JavaScript-Bibliothek plotly.js ermöglicht plotly Benutzern von Python, schöne interaktive webbasierte Visualisierungen zu erstellen.

Diese Visualisierungen können in Jupyter-Notebooks angezeigt, als eigenständige HTML-Dateien gespeichert oder als Teil reiner Python-basierter Web-Apps mit Dash verwendet werden. plotly wurde von Plotly Inc. entwickelt.

Kaleido ist eine plattformübergreifende Bibliothek, die statische Bilder (wie png, svg, pdf usw.) generiert, wobei ein besonderer Schwerpunkt darauf gelegt wird, die Notwendigkeit externer Abhängigkeiten zu beseitigen.

plotly kann einfach installiert werden mit:

pip install plotly

Apropos kaleido:

pip install kaleido

Betrachten Sie den folgenden Code.

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)

Was das Ausgabebild ergibt:

Verschwommenes Bild

Nachdem der Dataframe erstellt wurde, können wir mit der create_table-Methode von plotly.figure_factory eine zur Visualisierung geeignete Tabelle erstellen.

Die Methode create_table wird an die Dataframe-Instanz übergeben, aus der wir eine Tabelle erstellen möchten, die in die richtige Form konvertiert wird, um als PNG angezeigt zu werden.

Wenn es erforderlich ist, das allgemeine Erscheinungsbild des erstellten PNG der Tabelle zu aktualisieren, kann sein Layout mithilfe verschiedener vorgegebener Attribute wie autosize, width und height mithilfe der Methode update_layout aktualisiert werden.

Nachdem das Layout nach Belieben festgelegt wurde, kann das neue PNG nun mit der Methode write_image gespeichert werden, wobei ihm der Name des Bildes und die Skalierung bei Bedarf übergeben werden.

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

Verwandter Artikel - Pandas Dataframe