Ich habe ein Python-Wörterbuch mit Schlüssel und Werte und ich möchte ein neues Pandas Datenrahmenobjekt mit einer neuen Spalte nur aus Wörterbuch-Werte erstellt erstellen. Was ist der optimalste Weg, dies zu erreichen?Setzen Wörterbuch Werte in Datenrahmen neue Spalte in Python Pandas
Antwort
Ich glaube, Sie DataFrame.from_dict
brauchen:
d = {'tom':100, 'jerry':150, 'micky':400, 'donald':250}
df = pd.DataFrame.from_dict(d, orient='index')
df.columns = ['scores']
print (df)
scores
micky 400
donald 250
jerry 150
tom 100
Eine andere Lösung hinzuzufügen, ist dict
mit neuen Spaltennamen DataFrame
Konstruktor:
df = pd.DataFrame({'scores':d})
print (df)
scores
donald 250
jerry 150
micky 400
tom 100
Last, wenn Namen von Index reset_index
hinzufügen entfernen müssen:
print (df.reset_index(drop=True))
scores
0 400
1 250
2 150
3 100
Eine andere Lösung nur values
von dict
verwenden, aber Python Wörterbücher sind immer ungeordnet, so erhalten zufällige Reihenfolge der Werte in df
:
print (d.values())
dict_values([400, 250, 150, 100])
#python 3 add list
df = pd.DataFrame({'scores': list(d.values())})
print (df)
scores
0 400
1 250
2 150
3 100
Danke @jezrael für Ihre schnelle Antwort. Ich möchte das Ergebnis erreichen, wie es bei Ihrem letzten Schritt gezeigt wurde - ohne Namen. Ich suche nach einem optimierten Weg, um dies zu erreichen, da mein Beispiel ein kleiner Datensatz war. Was ist, wenn wir ein riesiges Dataset haben und zuerst das ganze Wörterbuch in den Datenrahmen laden und dann die Namen löschen? Können wir Werte direkt in Datenrahmen laden? – DevBoy
Ich füge letzte Lösung hinzu, ich glaube, dass es am schnellsten sein kann. – jezrael
Danke @jezrael. Ich denke deine letzte Lösung ist gut. – DevBoy
- 1. Python - Wörterbuch alle Werte auf Klassenobjekt setzen
- 2. Python Pandas Datenrahmen: Sammeln Werte einer Spalte
- 3. eine neue Pandas Spalte auf einem Wörterbuch basiert Werte schaffen
- 4. Kombinieren Pandas Datenrahmen Spaltenwerte in neue Spalte
- 5. Pandas - fügen Sie neue Spalte Datenrahmen aus Wörterbuch
- 6. Python Pandas: Datenrahmen negative Werte
- 7. Kopiere alle Werte in einer Spalte in eine neue Spalte in einem Pandas Datenrahmen
- 8. Pandas Datenrahmen Konvertieren in Python
- 9. Wörterbuch in Datenrahmen Python konvertieren
- 10. Erstellen Sie neue Pandas Spalte basierend auf kategorische Werte in anderen Spalte (Python)
- 11. Python pandas flag, das Werte in der Spalte in einem Datenrahmen zur Spalte in einem anderen Datenrahmen
- 12. Python Wörterbuch Pandas Datenrahmen mit mehreren Spalten
- 13. Pandas Datenrahmen: wie durch Werte in einer Spalte zu gruppieren und neue Spalten aus gruppierten Werte
- 14. Pandas Datenrahmen Zum Wörterbuch
- 15. Wie Werte Zelle als neue Spalten in Pandas Datenrahmen
- 16. Wie kopiere ich Werte von 2-dimensionalen Array in neue Spalte in Pandas Datenrahmen
- 17. aktualisieren Werte in Pandas Datenrahmen
- 18. Python Wörterbuch Verständnis mit Pandas
- 19. Python: zwei Werte in pandas Datenrahmen Vergleich Index Minimalwert erhält
- 20. neue Berechnungen in original Pandas Datenrahmen
- 21. Join eindeutige Werte in neuen Datenrahmen (Python, Pandas)
- 22. Pandas einfügen Multi-Wörterbuch in einen Datenrahmen
- 23. Wie Pandas Datenrahmen, um verschachtelte Wörterbuch
- 24. Python: Schleife neue Spalte Datenrahmen hinzufügen
- 25. exponentielle Werte in Python Pandas
- 26. Werte ändern in Pandas Datenrahmen nach value_counts()
- 27. Verschachteltes Wörterbuch von Pandas Datenrahmen
- 28. convert Pandas Datenrahmen Zum Wörterbuch
- 29. Mehrere Pandas Spalten in neue Spalte zusammenführen
- 30. neue Spalte im Datenrahmen mit fuzzywuzzy erstellen
Können Sie Probe hinzufügen? Vielleicht funktioniert einfach 'df = pd.DataFrame (d)' – jezrael
Zum Beispiel habe ich ein Wörterbuch als Name (Schlüssel) und Score (Wert) [tom: 100, jerry: 150, micky: 400, donald: 250] Jetzt alle Ich möchte ein Datenframe mit Spaltennamen als "Scores" mit allen Scores (Werten) aus diesem Wörterbuch. Sprich wie df ['scores'] = ... – DevBoy
Nein, * setze das Beispiel in die ursprüngliche Frage nicht in einen Kommentar *. –