Ich habe den folgenden DataFrame:
Kundenartikel1 Artikel2 Artikel3 1 Apfelmilchtomate 2 Wasserorangenkartoffel 3 Saft Mango Chips
was ich es in eine Liste von Wörterbüchern pro Zeile übersetzen möchte
rows = [{'customer': 1, 'item1': 'apple', 'item2': 'milk', 'item3': 'tomato'},
{'customer': 2, 'item1': 'water', 'item2': 'orange', 'item3': 'potato'},
{'customer': 3, 'item1': 'juice', 'item2': 'mango', 'item3': 'chips'}]
Antworten:
Bearbeiten
Wie John Galt in seiner Antwort erwähnt , sollten Sie wahrscheinlich stattdessen verwenden
df.to_dict('records')
. Es ist schneller als manuell zu transponieren.Ursprüngliche Antwort
Verwenden Sie
df.T.to_dict().values()
wie unten:quelle
df.T.to_dict().values()
, verliere ich auch die Sortierreihenfolgeunicodecsv.DictReader
Verwendung
df.to_dict('records')
- gibt die Ausgabe aus, ohne extern transponieren zu müssen.quelle
i.e. is the nth entry in the resulting list always also the nth column?
n-te Spalte oder n-te Zeile?Als Erweiterung von John Galts Antwort -
Für den folgenden DataFrame:
Wenn Sie eine Liste der Wörterbücher einschließlich der Indexwerte erhalten möchten, können Sie Folgendes tun:
Hiermit wird ein Wörterbuch mit Wörterbüchern ausgegeben, wobei die Schlüssel des übergeordneten Wörterbuchs Indexwerte sind. In diesem speziellen Fall
quelle
Wenn Sie nur eine Spalte auswählen möchten, funktioniert dies.
Das Folgende funktioniert NICHT und erzeugt einen TypeError: nicht unterstützten Typ :. Ich glaube, das liegt daran, dass versucht wird, eine Serie in ein Diktat und keinen Datenrahmen in ein Diktat umzuwandeln.
Ich musste nur eine Spalte auswählen und in eine Liste von Diktaten mit dem Spaltennamen als Schlüssel konvertieren.
quelle