Qual é a maneira mais eficiente de organizar o seguinte DataFrame dos pandas:
data =
Position Letter
1 a
2 b
3 c
4 d
5 e
em um dicionário como alphabet[1 : 'a', 2 : 'b', 3 : 'c', 4 : 'd', 5 : 'e']
?
python
dictionary
pandas
dataframe
user1083734
fonte
fonte
izip
, e nãozip
; gerador faz a diferença Eu achoEncontrei uma maneira mais rápida de resolver o problema, pelo menos em conjuntos de dados realisticamente grandes usando:
df.set_index(KEY).to_dict()[VALUE]
Prova em 50.000 linhas:
Resultado:
fonte
No Python 3.6, o caminho mais rápido ainda é o WouterOvermeire. A proposta de Kikohs é mais lenta que as outras duas opções.
Resultados:
fonte
TL; DR
In Long
Explicando a solução:
dict(sorted(df.values.tolist()))
Dado:
[Fora]:
Experimentar:
[Fora]:
Em seguida, opcionalmente:
Ou:
[Fora]:
Por fim, lance a lista da lista de 2 elementos em um ditado.
[Fora]:
Relacionado
Respondendo ao comentário de @sbradbio:
Se houver vários valores para uma chave específica e você desejar manter todos eles, não é a maneira mais eficiente, mas a mais intuitiva:
[Fora]:
fonte
{'key': [value1, value2]}