Quelle est la manière la plus efficace d'organiser les pandas Dataframe suivants:
données =
Position Letter
1 a
2 b
3 c
4 d
5 e
dans un dictionnaire comme alphabet[1 : 'a', 2 : 'b', 3 : 'c', 4 : 'd', 5 : 'e']
?
python
dictionary
pandas
dataframe
utilisateur1083734
la source
la source
izip
, plutôt quezip
; générateur fait la différence je supposeJ'ai trouvé un moyen plus rapide de résoudre le problème, au moins sur des ensembles de données réalistes en utilisant:
df.set_index(KEY).to_dict()[VALUE]
Preuve sur 50000 lignes:
Production:
la source
Dans Python 3.6, le moyen le plus rapide est toujours celui de WouterOvermeire. La proposition de Kikohs est plus lente que les deux autres options.
Résultats:
la source
TL; DR
En long
Solution explicative:
dict(sorted(df.values.tolist()))
Donné:
[en dehors]:
Essayer:
[en dehors]:
Puis éventuellement:
Ou:
[en dehors]:
Enfin, convertissez la liste de la liste de 2 éléments dans un dict.
[en dehors]:
en relation
Répondre au commentaire de @sbradbio:
S'il existe plusieurs valeurs pour une clé spécifique et que vous souhaitez les conserver toutes, ce n'est pas le moyen le plus efficace mais le plus intuitif:
[en dehors]:
la source
{'key': [value1, value2]}