Alla ricerca di un modo rapido per ottenere una riga in un dataframe panda in una dict ordinata senza lista. La lista va bene, ma con grandi serie di dati ci vorrà molto. Sto usando il lettore GIS di fiona e le righe sono ordinate con lo schema che fornisce il tipo di dati. Uso i panda per unire i dati. In molti casi le righe avranno diversi tipi, quindi stavo pensando che trasformarsi in un array numpy con una stringa di tipo potrebbe fare il trucco.Come trasformare rapidamente la riga dataframe di panda in ordereddict
10
A
risposta
16
Purtroppo non si può solo fare un applicano (in quanto si adatta di nuovo ad un dataframe):
In [1]: df = pd.DataFrame([[1, 2], [3, 4]], columns=['a', 'b'])
In [2]: df
Out[2]:
a b
0 1 2
1 3 4
In [3]: from collections import OrderedDict
In [4]: df.apply(OrderedDict)
Out[4]:
a b
0 1 2
1 3 4
Ma è possibile utilizzare la comprensione lista con iterrows:
In [5]: [OrderedDict(row) for i, row in df.iterrows()]
Out[5]: [OrderedDict([('a', 1), ('b', 2)]), OrderedDict([('a', 3), ('b', 4)])]
Se era possibile utilizzare un generatore, piuttosto che una lista, a qualsiasi cosa stavate lavorando sarebbe più efficiente:
In [6]: (OrderedDict(row) for i, row in df.iterrows())
Out[6]: <generator object <genexpr> at 0x10466da50>
4
Questo è implementato in pandas 0.21.0+
in funzione to_dict
con parametro into
:
df = pd.DataFrame([[1, 2], [3, 4]], columns=['a', 'b'])
print (df)
a b
0 1 2
1 3 4
d = df.to_dict(into=OrderedDict, orient='index')
print (d)
OrderedDict([(0, OrderedDict([('a', 1), ('b', 2)])), (1, OrderedDict([('a', 3), ('b', 4)]))])
Problemi correlati
- 1. Come trasformare una riga dataframe panda in una stringa separata da virgola
- 2. come trasformare il dataframe panda per l'inserimento tramite l'istruzione executemany()?
- 3. Il gruppo panda può trasformare un DataFrame in una serie?
- 4. Aggiornamento un dataframe in panda, mentre l'iterazione riga per riga
- 5. Serializzazione di un panda DataFrame
- 6. trasformare scsy sparse csr in panda?
- 7. Come normalizzare da un'altra riga in un DataFrame panda?
- 8. Copia la riga DataFrame dei panda su più righe
- 9. Come aggiungere una riga di intestazione a un panda DataFrame
- 10. Come ottenere l'ultima n riga di dataframe panda?
- 11. striature trovando in panda dataframe
- 12. Dataframe Unisci in Panda
- 13. mediana di panda dataframe
- 14. Trascinare la riga in dataframe panda se qualsiasi valore nella riga è uguale a zero
- 15. panda ottenere la posizione di un determinato indice in dataframe
- 16. Converti matrice sparsa (csc_matrix) in dataframe panda
- 17. Norm su riga in panda
- 18. Interpolazione su DataFrame in panda
- 19. Tabella Pytables in panda DataFrame
- 20. Media riga di riga nei panda
- 21. Ordinamento personalizzato in dataframe panda
- 22. Blocca intestazione in panda dataframe
- 23. XML per i panda dataframe
- 24. panda dataframe perno problema
- 25. Come ruotare un dataframe in Panda?
- 26. panda: normalizzare un DataFrame
- 27. Dividi intero dataframe multiIndex panda con la variabile dataframe
- 28. binning un dataframe in panda in Python
- 29. l'indicizzazione di un dataframe panda
- 30. intesa panda dataframe indicizzazione