sto sto cercando di chiamare la funzione to_dict sul seguente dataframe:Pandas to_dict cambia tipo indice con outtype = 'record'
panda importazione come pd
data = { "a": [1 , 2,3,4,5], "b": [90,80,40,60,30]}
df = pd.DataFrame (dati)
a b
0 1 90
1 2 80
2 3 40
3 4 60
4 5 30
df.reset_index() .to_dict ("r")
[{'a': 1, 'b': 90, 'index': 0},
{'a': 2, 'b': 80, 'index': 1},
{'a': 3, 'b': 40, 'index': 2},
{'a': 4, 'b': 60, 'index': 3},
{'a': 5, 'b': 30, 'index': 4}]
Tuttavia il problema si verifica se si esegue un'operazione galleggiante sul dataframe, che muta l'indice in un galleggiante:.
(df * 1.0) .reset_index() to_dict (" r ")
[{'a': 1.0, 'b': 90.0, 'index': 0.0},
{'a': 2.0, 'b': 80.0, 'index': 1.0},
{'a': 3.0, 'b': 40.0, 'index': 2.0},
{'a': 4.0, 'b': 60.0, 'index': 3.0},
{'a': 5.0, 'b': 30.0, 'index': 4.0}]
qualcuno può spiegare il comportamento sopra o consigliare una soluzione, o di verificare se questo potrebbe essere un bug panda? Nessuno degli altri outtype nel metodo to_dict modifica l'indice come mostrato sopra.
ho replicato questo su entrambi i panda 0.14 e 0.18 (l'ultima)
Molte grazie!
Questo appare come un insetto si dovrebbe presentare una segnala [qui] (https://github.com/pydata/pandas/issues) – EdChum