Ich habe einen DataFrame mit vier Spalten. Ich möchte diesen DataFrame in ein Python-Wörterbuch konvertieren. Ich möchte, dass die Elemente der ersten Spalte keys
und die Elemente anderer Spalten in derselben Zeile sind values
.
DataFrame:
ID A B C
0 p 1 3 2
1 q 4 3 2
2 r 4 0 9
Die Ausgabe sollte folgendermaßen aussehen:
Wörterbuch:
{'p': [1,3,2], 'q': [4,3,2], 'r': [4,0,9]}
python
pandas
dictionary
dataframe
Prinz Bhatti
quelle
quelle
Dataframe.to_dict()
?Dataframe.to_dict()
wirdA,B,C
die Schlüssel anstelle vonp,q,r
Antworten:
Die
to_dict()
Methode legt die Spaltennamen als Wörterbuchschlüssel fest, sodass Sie Ihren DataFrame leicht umformen müssen. Das Festlegen der Spalte 'ID' als Index und das anschließende Transponieren des DataFrame ist eine Möglichkeit, dies zu erreichen.to_dict()
Akzeptiert auch ein 'orient'-Argument, das Sie benötigen, um eine Liste von Werten für jede Spalte auszugeben . Andernfalls{index: value}
wird für jede Spalte ein Wörterbuch des Formulars zurückgegeben.Diese Schritte können mit der folgenden Zeile ausgeführt werden:
Falls ein anderes Wörterbuchformat benötigt wird, finden Sie hier Beispiele für mögliche Orientierungsargumente. Betrachten Sie den folgenden einfachen DataFrame:
Dann sind die Optionen wie folgt.
dict - die Standardeinstellung: Spaltennamen sind Schlüssel, Werte sind Wörterbücher von Index: Datenpaaren
Liste - Tasten sind Spaltennamen, Werte sind Listen von Spaltendaten
Serien - wie 'Liste', aber Werte sind Serien
Teilt - teilt Spalten / Daten / Index als Schlüssel auf, wobei Werte Spaltennamen, Datenwerte nach Zeilen- bzw. Indexbezeichnungen sind
Aufzeichnungen - Jede Zeile wird zu einem Wörterbuch, in dem der Schlüssel der Spaltenname und der Wert die Daten in der Zelle sind
indexähnliche 'Datensätze', aber ein Wörterbuch mit Wörterbüchern mit Schlüsseln als Indexbezeichnungen (anstelle einer Liste)
quelle
df.set_index('ID').T.to_dict('list')
Versuchen zu benutzen
Zip
Ausgabe:
quelle
Folge diesen Schritten:
Angenommen, Ihr Datenrahmen lautet wie folgt:
1. Verwenden Sie
set_index
dieseID
Option , um Spalten als Datenrahmenindex festzulegen.2. Verwenden Sie den
orient=index
Parameter, um den Index als Wörterbuchschlüssel zu verwenden.Die Ergebnisse werden wie folgt sein:
3. Wenn Sie jedes Beispiel als Liste haben möchten, führen Sie den folgenden Code aus. Bestimmen Sie die Spaltenreihenfolge
quelle
Wenn es Ihnen nichts ausmacht, dass die Wörterbuchwerte Tupel sind, können Sie itertuples verwenden:
quelle
sollte ein Wörterbuch wie:
aus einem Datenrahmen erforderlich sein wie:
Der einfachste Weg wäre:
Arbeitsausschnitt unten:
quelle
Für meine Verwendung (Knotennamen mit xy-Positionen) fand ich die Antwort von @ user4179775 auf die hilfreichste / intuitivste:
Nachtrag
Ich kehrte später zu diesem Thema zurück, um andere, aber verwandte Arbeiten zu erledigen. Hier ist ein Ansatz, der die [ausgezeichnete] akzeptierte Antwort genauer widerspiegelt.
Konvertieren Sie den Pandas-Datenrahmen in eine [Liste], {dict}, {dict of {dict}}, ...
Pro akzeptierter Antwort:
In meinem Fall wollte ich dasselbe tun, aber mit ausgewählten Spalten aus dem Pandas-Datenrahmen, also musste ich die Spalten in Scheiben schneiden. Es gibt zwei Ansätze.
(Siehe: Konvertieren Sie Pandas in ein Wörterbuch, in dem die für die Schlüsselwerte verwendeten Spalten definiert sind. )
oder
Damit kann dann ein Wörterbuch mit Wörterbüchern erstellt werden
quelle
DataFrame.to_dict()
konvertiert DataFrame in ein Wörterbuch.Beispiel
Weitere Informationen finden Sie in dieser Dokumentation
quelle