Wörterbuch in DataFrame umwandeln in Python Pandas
Published on
Als Data Scientist ist die Arbeit mit Daten eines der Kernaspekte des Berufs. Eine der häufigsten Datenstrukturen, die in Python zu diesem Zweck verwendet werden, ist das Wörterbuch. Ein Wörterbuch ist eine Sammlung von Schlüssel-Wert-Paaren, wobei jeder Schlüssel eindeutig ist. Pandas ist eine beliebte Python-Bibliothek für die Datenanalyse und bietet leistungsstarke Funktionen zur Datenmanipulation. Eine der häufigsten Aufgaben bei der Datenanalyse ist die Umwandlung eines Wörterbuchs in einen Pandas DataFrame. In diesem Blog-Beitrag werden wir den Prozess der Umwandlung eines Wörterbuchs in einen DataFrame in Pandas besprechen.
Möchten Sie schnell Datenvisualisierungen in Python erstellen?
PyGWalker ist ein Open-Source-Python-Projekt, das dabei helfen kann, den Datenanalyse- und Visualisierungs-Workflow direkt in einer Jupyter Notebook-Umgebung zu beschleunigen.
PyGWalker (opens in a new tab) wandelt Ihren Pandas Dataframe (oder Ihren Polars Dataframe) in eine visuelle Benutzeroberfläche um, in der Sie Variablen per Drag-and-Drop ziehen und ablegen können, um Diagramme mühelos zu erstellen. Verwenden Sie einfach den folgenden Code:
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
Sie können PyGWalker jetzt mit diesen Online-Notebooks ausführen:
Und vergessen Sie nicht, uns auf GitHub ein ⭐️ zu geben!
Was ist ein Wörterbuch?
In Python ist ein Wörterbuch eine Sammlung von Schlüssel-Wert-Paaren. Jeder Schlüssel ist eindeutig und entspricht einem Wert. Wörterbücher werden verwendet, um Daten zu speichern und zu manipulieren, die mithilfe von Schlüsseln abgerufen werden können. Wörterbücher in Python werden mit geschweiften Klammern {}
definiert und können verschachtelt sein.
Was ist ein DataFrame?
Ein DataFrame ist eine zweidimensionale tabellenähnliche Datenstruktur in Pandas. Es besteht aus Zeilen und Spalten, wobei jede Spalte Daten eines anderen Typs enthalten kann. DataFrames sind eine hervorragende Möglichkeit, Daten zu analysieren und zu manipulieren, und Pandas stellt eine Vielzahl von Funktionen zum Manipulieren von Daten in einem DataFrame bereit.
Umwandlung eines Wörterbuchs in einen DataFrame
Pandas stellt eine einfache Methode zum Umwandeln eines Wörterbuchs in einen DataFrame unter Verwendung der Funktion pd.DataFrame.from_dict()
zur Verfügung. Die Funktion from_dict()
akzeptiert ein Wörterbuch als Eingabe und gibt einen DataFrame zurück. Das Standardverhalten dieser Funktion geht davon aus, dass die Schlüssel im Wörterbuch den Spaltennamen entsprechen und die Werte den Zeilendaten entsprechen.
Nehmen wir ein Beispiel an, bei dem wir ein Wörterbuch haben, das Informationen über Studierende, ihre Noten und ihre Fächer enthält:
student_data = {'name': ['Alice', 'Bob', 'Charlie'], 'grade': [95, 87, 92], 'subject': ['Math', 'English', 'Science']}
Um dieses Wörterbuch in einen DataFrame umzuwandeln, verwenden wir einfach die Funktion from_dict()
:
import pandas as pd
df = pd.DataFrame.from_dict(student_data)
print(df)
Die Ausgabe dieses Code-Snippets wird wie folgt aussehen:
name grade subject
0 Alice 95 Math
1 Bob 87 English
2 Charlie 92 Science
Wie wir sehen können, wurden die Schlüssel des Wörterbuchs (name
, grade
und subject
) als Spaltennamen des resultierenden DataFrames verwendet und die entsprechenden Werte wurden als Zeilendaten verwendet.
Verwendung des orient
-Parameters
In Fällen, in denen das Wörterbuch eine andere Struktur aufweist, können wir den orient
-Parameter verwenden, um anzugeben, wie der DataFrame erstellt werden soll. Der orient
-Parameter akzeptiert verschiedene Werte wie index
, columns
, split
und values
. Der Standardwert ist columns
. Nehmen wir ein Beispiel an, bei dem wir ein Wörterbuch haben, das Listen unterschiedlicher Längen enthält:
data = {'name': ['Alice', 'Bob', 'Charlie'], 'grade': [95, 87], 'subject': ['Math', 'English', 'Science']}
Wenn wir versuchen, dieses Wörterbuch unter Verwendung des Standardverhaltens in einen DataFrame umzuwandeln, erhalten wir einen ValueError
:
df = pd.DataFrame.from_dict(data)
ValueError: arrays must all be same length
Um diesen Fehler zu vermeiden, können wir den orient
-Parameter mit dem Wert index
verwenden, um einen DataFrame zu erstellen, bei dem die Schlüssel des Wörterbuchs die Zeilenindizes werden und die entsprechenden Werte die Zeilendaten werden:
df = pd.DataFrame.from_dict(data, orient='index')
print(df)
Die Ausgabe dieses Code-Snippets wird wie folgt aussehen:
0 1 2
name Alice Bob Charlie
grade 95 87 None
subject Math English Science
Verwendung einer Liste von Wörterbüchern
Eine weitere Möglichkeit, ein DataFrame aus einem Wörterbuch zu erstellen, besteht darin, eine Liste von Wörterbüchern zu verwenden. In diesem Szenario wird jedes Wörterbuch in der Liste einer Zeile im resultierenden DataFrame entsprechen, und die Schlüssel im Wörterbuch werden den Spaltennamen entsprechen. Betrachten wir ein Beispiel, in dem wir eine Liste von Wörterbüchern haben, die Schüler und ihre Noten darstellen:
student_data = [{'name': 'Alice', 'grade': 95, 'subject': 'Math'},
{'name': 'Bob', 'grade': 87, 'subject': 'English'},
{'name': 'Charlie', 'grade': 92, 'subject': 'Science'}]
Um diese Liste von Wörterbüchern in einen DataFrame umzuwandeln, verwenden wir einfach die Funktion pd.DataFrame()
:
df = pd.DataFrame(student_data)
print(df)
Die Ausgabe dieses Codeausschnitts wird wie folgt aussehen:
name grade subject
0 Alice 95 Math
1 Bob 87 English
2 Charlie 92 Science
Wie wir sehen können, ist der resultierende DataFrame der gleiche wie der aus dem Wörterbuch im vorherigen Beispiel erstellte.
Verwendung von Schlüsseln als Spalten
Standardmäßig verwendet die Funktion from_dict()
die Wörterbuchschlüssel als Spaltennamen im resultierenden DataFrame. In Fällen, in denen wir eine andere Menge von Schlüsseln verwenden möchten, können wir den Parameter columns
verwenden. Wenn wir zum Beispiel ein Wörterbuch mit den Schlüsseln a
, b
und c
haben, aber x
, y
und z
als Spaltennamen verwenden möchten, können wir Folgendes tun:
data = {'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]}
df = pd.DataFrame.from_dict(data, columns=['x', 'y', 'z'])
print(df)
Die Ausgabe dieses Codeausschnitts wird wie folgt aussehen:
x y z
0 1 4 7
1 2 5 8
2 3 6 9
Verwendung einer engen Ausrichtung
Die Funktion from_dict()
kann auch verwendet werden, um einen DataFrame aus einem Wörterbuch mit einer engen Ausrichtung zu erstellen. Eine enge Ausrichtung bedeutet, dass jeder Wörterbuchschlüssel ein Wörterbuch enthält, das den gleichen Satz von Schlüsseln enthält. Betrachten wir das folgende Beispiel:
data = {'a': {'x': 1, 'y': 2, 'z': 3}, 'b': {'x': 4, 'y': 5, 'z': 6}, 'c': {'x': 7, 'y': 8, 'z': 9}}
Um einen DataFrame aus diesem Wörterbuch mit einer engen Ausrichtung zu erstellen, können wir den Parameter orient
verwenden und seinen Wert auf index
setzen:
df = pd.DataFrame.from_dict(data, orient='index')
print(df)
Die Ausgabe dieses Codeausschnitts wird wie folgt aussehen:
x y z
a 1 2 3
b 4 5 6
c 7 8 9
Index- und Spaltennamen
Beim Konvertieren eines Wörterbuchs in einen DataFrame können wir auch den Index und die Spaltennamen angeben. Betrachten wir das folgende Beispiel:
data = {'name': ['Alice', 'Bob', 'Charlie'], 'grade': [95, 87, 92], 'subject': ['Math', 'English', 'Science']}
df = pd.DataFrame.from_dict(data, orient='columns', columns=['name', 'subject', 'grade'], index=['student1', 'student2', 'student3'])
print(df)
Die Ausgabe dieses Codeausschnitts wird wie folgt aussehen:
name subject grade
student1 Alice Math 95
student2 Bob English 87
student3 Charlie Science 92
Wie wir in diesem Beispiel sehen können, können wir die Spaltennamen mit dem Parameter columns
und die Indexnamen mit dem Parameter index
angeben.
Fazit
In diesem Blogartikel haben wir gelernt, wie man mithilfe der Funktion pd.DataFrame.from_dict()
in Pandas ein Wörterbuch einfach in einen DataFrame umwandelt. Wir haben auch gelernt, wie man die Ausrichtung des Wörterbuchs festlegt und die Spalten- und Indexnamen anpassen kann. Die Fähigkeit, Wörterbücher einfach in Datenrahmen umzuwandeln, erleichtert die Manipulation von Daten in Python und ermöglicht es Datenwissenschaftlern, verschiedene Datenanalyseaufgaben wie Datenmanipulation und maschinelles Lernen durchzuführen, die in ihrem Beruf nützlich sein können. Die im Umgang mit Wörterbüchern zu Datenrahmen erlernten Fähigkeiten können auch auf die R-Sprache übertragen werden, eine weitere beliebte Tools für Datenanalyse und Datenmanipulation in Python.