Skip to content

Wörterbuch in DataFrame umwandeln in Python Pandas

Updated 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!

PyGWalker in Kaggle Notebook ausführen (opens in a new tab)PyGWalker in Google Colab ausführen (opens in a new tab)PyGWalker ein ⭐️ auf GitHub geben (opens in a new tab)
PyGWalker in Kaggle Notebook ausführen (opens in a new tab)PyGWalker in Google Colab ausführen (opens in a new tab)PyGWalker in Google Colab ausführen (opens in a new tab)

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.