Pandas DataFrame a la lista de diccionarios

Resuelto Mohamad Ibrahim asked hace 9 años • 6 respuestas

Tengo el siguiente marco de datos:

cliente artículo1 artículo2 artículo3
1 tomate con leche de manzana
2 patatas agua naranja
3 chips de mango en jugo

que quiero traducirlo a una lista de diccionarios por fila

rows = [
    {
        'customer': 1,
        'item1': 'apple',
        'item2': 'milk',
        'item3': 'tomato'
    }, {
        'customer': 2,
        'item1':
        'water',
        'item2': 'orange',
        'item3': 'potato'
    }, {
        'customer': 3,
        'item1': 'juice',
        'item2': 'mango',
        'item3': 'chips'
    }
]
Mohamad Ibrahim avatar Apr 23 '15 13:04 Mohamad Ibrahim
Aceptado

Uso df.to_dict('records'): proporciona la salida sin tener que transponerla externamente.

In [2]: df.to_dict('records')
Out[2]:
[{'customer': 1L, 'item1': 'apple', 'item2': 'milk', 'item3': 'tomato'},
 {'customer': 2L, 'item1': 'water', 'item2': 'orange', 'item3': 'potato'},
 {'customer': 3L, 'item1': 'juice', 'item2': 'mango', 'item3': 'chips'}]
Zero avatar Apr 23 '2015 07:04 Zero

Utilice df.T.to_dict().values(), como a continuación:

In [1]: df
Out[1]:
   customer  item1   item2   item3
0         1  apple    milk  tomato
1         2  water  orange  potato
2         3  juice   mango   chips

In [2]: df.T.to_dict().values()
Out[2]:
[{'customer': 1.0, 'item1': 'apple', 'item2': 'milk', 'item3': 'tomato'},
 {'customer': 2.0, 'item1': 'water', 'item2': 'orange', 'item3': 'potato'},
 {'customer': 3.0, 'item1': 'juice', 'item2': 'mango', 'item3': 'chips'}]
ComputerFellow avatar Apr 23 '2015 06:04 ComputerFellow