Sorry im Voraus, wenn diese Frage schon einmal beantwortet wurde, aber ich kann es nicht finden.Handle doppelte Schlüssel in Python-Wörterbuch
Ich habe Panda Datenrahmen wie so:
id | value1 | value2 | ... | valueN
1 | 321 | 44 | ... | 7766
2 | 5678 | 7638 | ... | 987423
2 | 0971 | 7638 | ... | 1
and so on...
ich es richtig laden und was will ich erreichen ist ein OrderedDict
, die die doppelten Werte zusammenbrechen wird, wenn nötig. Für das obige Beispiel sollte
die Ausgabe-Wörterbuch sein:
{1: ['321', '44', ..., '7766'], 2:['5678,0971', '7638', ..., '987423,1']}
Beachten Sie, dass die Werte des Wörterbuchs sind list
und die Werte der Liste sind strings
.
bisher Mein Code ist:
od = collections.OrderedDict()
for k in df.id:
if k in od:
# This key, pre-exists in this dictionary, so we have to append values
# what should I do here?
else:
# new value inserted. proceed.
od[k] = unordered_dict.get(k)
irgendwelche Ideen?
laden die Sammlung mit dem Schlüssel, um die Werte anhängen. Genau so, wie Sie sagten. Schreiben Sie weiter, Sie sind auf dem richtigen Weg. – DejaVuSansMono
Wenn der Schlüssel bereits im Wörterbuch vorhanden ist, sollten Sie die Liste mit '.extend()' an die vorhandene anhängen: 'od [k] .extend (unordered_dict.get (k))' – ozgur
@dejavusansmono Ich bin stecken geblieben diesen Teil für über eine Stunde, deshalb habe ich es hier gepostet: P – Mixalis