Lesen Sie HDF5-Dateien in Pandas DataFrame ein
- Exportieren Sie einen DataFrame mit Pandas nach HDF5
- HDF5-Datei in einen Pandas DataFrame einlesen
- Abschluss
Die Welt entwickelt sich weiter, und Big Data wird für die Speicherung und Verarbeitung großer Datenmengen große Bedeutung beigemessen. Aufgrund dieser Menge sind neue Dateiformate entstanden, die die traditionellen Speicheroptionen überholen.
Ein solches Format ist die HDF5-Datei. Eine HDF5-Datei steht für Hierarchal Data Format Version 5; Diese Version wird am häufigsten verwendet.
Wir verwenden dieses Dateiformat, um große Datenmengen zu speichern und die Inhalte in einer bestimmten Hierarchie zu organisieren. Dies hat den Vorteil, dass weniger Speicherplatz benötigt wird und ein schneller Zugriff auf Teile der Daten möglich ist.
Mit solchen Dateien können wir in Python mit dem Modul h5py
effizient arbeiten. Wir können sogar die Pandas-Bibliothek verwenden, um solche Daten in Datenrahmen zu laden.
In diesem Artikel wird gezeigt, wie Sie mit HDF5-Dateien mithilfe der Pandas-Bibliothek in Python arbeiten.
Exportieren Sie einen DataFrame mit Pandas nach HDF5
Wir können ein Dataframe-Objekt mit der Funktion pandas.to_hdf()
in eine HDF5-Datei exportieren. Diese Funktion schreibt einen Datenrahmen mit HDFStore in eine HDF5-Datei.
Bevor wir diese Funktion verwenden, müssen wir einige entscheidende Parameter verstehen.
Um die Gruppenkennung anzugeben, verwenden wir den Parameter key
. Mit dem Parameter mode
können wir verschiedene Modi für die Datei einstellen.
Der w
-Modus öffnet die Datei im Schreibmodus und löscht den vorherigen Inhalt. Der a
-Modus öffnet die Datei im Anhängemodus und fügt Daten hinzu, wobei der vorherige Inhalt erhalten bleibt.
Im folgenden Beispiel exportieren wir nun mit dieser Funktion einen Datenrahmen in eine HDF5-Datei.
df = pd.DataFrame({"C1": [10, 11, 12], "C2": [20, 21, 22]}, index=[0, 1, 2])
df.to_hdf("file_data.h5", key="df", mode="w")
Das obige Beispiel erstellt eine HDF5-Datei mit dem Inhalt des Datenrahmens. Wir öffnen die Datei im Schreibmodus und löschen alle vorherigen Daten.
HDF5-Datei in einen Pandas DataFrame einlesen
Wir haben die Funktion pandas.read_hdf()
, mit der wir solche Dateien direkt lesen können. Es funktioniert jedoch nicht für jede HDF5-Datei.
Die Pandas-Bibliothek versteht nur einige spezifische Strukturen der HDF5-Dateien, daher funktioniert diese Funktion nur mit solchen Strukturen.
Siehe Code unten.
import pandas as pd
df = pd.read_hdf("file_data.h5")
print(df)
Ausgang:
C1 C2
0 10 20
1 11 21
2 12 22
Im obigen Beispiel lesen wir die in der vorherigen Funktion erstellte HDF5-Datei mit der Funktion read_hdf()
. Wie bereits erwähnt, kann nicht jede Struktur für die HDF5-Datei direkt mit der Funktion pandas.read_hdf()
importiert werden.
Für solche Fälle gibt es eine schnelle Lösung, die funktionieren kann. Dabei werden die Module h5py
und numpy
verwendet.
Wir werden den Konstruktor h5py.File
verwenden, um die angegebene HDF5-Datei zu lesen und sie mit der Funktion numpy.array()
in einem numpy
-Array zu speichern. Dann können wir diese Daten mit der Funktion pandas.DataFrame()
in einem Datenrahmen speichern.
Das Format dafür ist unten dargestellt.
import pandas as pd
import numpy as np
import h5py
df = pd.DataFrame(np.array(h5py.File("file_data.h5")["df"]))
Abschluss
Zum Abschluss haben wir besprochen, wie man mit HDF5-Dateien mit der Pandas-Bibliothek in Python arbeitet. Wir begannen damit, uns über das HDF5-Dateiformat und seine Vorteile zu informieren.
Wir haben einen Datenrahmen mit der Methode to_hdf()
in solche Dateien exportiert. Wir verwenden die Funktion read_hdf()
, um solche Dateien zu lesen.
Für komplexe Strukturen können wir eine Kombination von Funktionen aus der h5py-, NumPy- und Pandas-Bibliothek verwenden, um die Dateien in einen Datenrahmen einzulesen.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedInVerwandter Artikel - Pandas DataFrame
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
- Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame
- Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert
- Wie erhält man das Aggregat der Pandas gruppenweise und sum