Pandas Dataframe in Dictionary umwandeln
-
Pandas DataFrame zu Dictionary mit der Funktion
to_dict()
-
Pandas DataFrame zu Dictionary mit Werten als Liste oder
Series
- Pandas DataFrame zu Liste von Dictionaries
- Pandas Dataframe in Dictionary by Rows
-
Dataframe zu Dictionary mit einer Spalte als
key
-
Pandas DataFrame in Dictionary mit
dict()
undzip()
Funktionen
In diesem Tutorial wird gezeigt, wie man einen Pandas DataFrame in ein Dictionary konvertiert, wobei die Elemente der Indexspalte als Schlüssel und die entsprechenden Elemente der anderen Spalten als Wert dienen. Wir werden in dem Artikel den folgenden DataFrame verwenden.
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
print(df)
Ausgabe:
Name Age Course
0 Jay 16 BBA
1 Jack 19 BTech
2 Mark 18 BSc
Pandas DataFrame zu Dictionary mit der Funktion to_dict()
Pandas to_dict()
Funktion konvertiert einen DataFrame in ein Dictionary. Die Parameter bestimmen das Format des Dictionaries und wie die Schlüssel-Wert-Paare zugeordnet werden. Ein elementares Beispiel für die Konvertierung eines DataFrame in ein Dictionary mit der Funktion to_dict()
ist unten dargestellt:
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
d1 = df.to_dict()
print(d1)
Ausgabe:
{'Name': {0: 'Jay', 1: 'Jack', 2: 'Mark'}, 'Age': {0: 16, 1: 19, 2: 18}, 'Course': {0: 'BBA', 1: 'BTech', 2: 'BSc'}}
Wie Sie in der Ausgabe sehen können, werden die Spaltennamen in Schlüssel und jeder Datensatz in den Wert konvertiert, wobei der Index als Schlüssel dient.
Pandas DataFrame zu Dictionary mit Werten als Liste oder Series
Wir können Parameter wie list
, records
, series
, index
, split
und dict
an die Funktion to_dict()
übergeben, um das Format des endgültigen Dictionaries zu ändern. Wenn wir zum Beispiel list
und series
als Parameter übergeben, haben wir die Spaltennamen als Schlüssel, aber die Wertepaare werden in eine Liste bzw. eine Reihe von Zeilen konvertiert. Das folgende Beispiel soll dies demonstrieren.
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
d_list = df.to_dict("list")
print(d_list)
d_series = df.to_dict("series")
print(d_series)
Ausgabe:
{'Name': ['Jay', 'Jack', 'Mark'], 'Age': [16, 19, 18], 'Course': ['BBA', 'BTech', 'BSc']}
{'Name': 0 Jay
1 Jack
2 Mark
Name: Name, dtype: object, 'Age': 0 16
1 19
2 18
Name: Age, dtype: int64, 'Course': 0 BBA
1 BTech
2 BSc
Name: Course, dtype: object}
Pandas DataFrame zu Liste von Dictionaries
Wir können auch jede Zeile als separates Dictionary haben, indem wir records
an die Funktion übergeben. Das Endergebnis ist eine Liste mit jeder Zeile als Dictionary. Ein Beispiel,
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
d_records = df.to_dict("records")
print(d_records)
Ausgabe:
[{'Name': 'Jay', 'Age': 16, 'Course': 'BBA'}, {'Name': 'Jack', 'Age': 19, 'Course': 'BTech'}, {'Name': 'Mark', 'Age': 18, 'Course': 'BSc'}]
Pandas Dataframe in Dictionary by Rows
In vielen Fällen möchten wir jedoch nicht die Spaltennamen als Schlüssel des Dictionaries verwenden. Für solche Situationen können wir index
übergeben, um den Index des DataFrames als Schlüssel zu verwenden. Der folgende Codeschnipsel zeigt dies.
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
d_index = df.to_dict("index")
print(d_index)
Ausgabe:
{0: {'Name': 'Jay', 'Age': 16, 'Course': 'BBA'}, 1: {'Name': 'Jack', 'Age': 19, 'Course': 'BTech'}, 2: {'Name': 'Mark', 'Age': 18, 'Course': 'BSc'}}
Dataframe zu Dictionary mit einer Spalte als key
Was aber, wenn wir lieber die Elemente einer Spalte als Schlüssel und die Elemente an anderen Spalten als Werte verwenden möchten? Das ist möglich, indem man einfach die gewünschte Spalte zum Index des DataFrame macht und dessen Transponierung mit der Funktion .T()
vornimmt.
Beispiel:
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
d_names = df.set_index("Name").T.to_dict("list")
print(d_names)
Ausgabe:
{'Jay': [16, 'BBA'], 'Jack': [19, 'BTech'], 'Mark': [18, 'BSc']}
Pandas DataFrame in Dictionary mit dict()
und zip()
Funktionen
Die Python-Funktion dict()
kann den Pandas-DataFrame auch in ein Dictionary konvertieren. Wir sollten auch die zip()
Funktion mit den einzelnen Spalten als Argumente in ihr verwenden, um den parallelen Iterator zu erzeugen. Dann wird die Funktion zip()
in jeder Iteration alle Werte in einer Zeile liefern.
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
d = dict([(i, [a, b]) for i, a, b in zip(df["Name"], df["Age"], df["Course"])])
print(d)
Ausgabe:
{'Jay': [16, 'BBA'], 'Jack': [19, 'BTech'], 'Mark': [18, 'BSc']}
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