2015-11-10 15 views
5

Mi chiedo se qualcuno abbia mai visto questo problema con Pandas. Fondamentalmente, sto cercando di aggiungere, moltiplicare e dividere DataFrames elemento per elemento (tutti i frame hanno indici e colonne identici), ma Panda sta sputando risultati diversi per lo stesso calcolo eseguito successivamente.Instabilità dei calcoli del dataframe panda

Un'immagine di un esempio di output è mostrata di seguito. Ho usato .values nel codice qui sotto perché per scopi di visualizzazione, ma l'instabilità può accadere quando si utilizza .add(), .mul() o .div(). Ad esempio, se inserisco ripetutamente N11.add(N00), di solito ottengo la risposta corretta, ma occasionalmente (ogni 4 o 5 volte), ottengo un DataFrame pieno di 0 s.

enter image description here

Se è importante, io sono su Windows 10 utilizzando una distribuzione Anaconda di Panda 0.17.0 (con Python 2.7.10 su Spyder 2.3.7). I frame con cui sto lavorando sono grandi (6856 per 12511). Qualcun altro ha riscontrato questo problema? Si tratta di un problema noto o sto facendo qualcosa di sbagliato?

+0

Interessante: c'è qualche possibilità di riprodurre il comportamento con DataFrame più piccoli e pubblicarli come parte della domanda qui? –

+0

(Anche se stai solo moltiplicando gli array NumPy, potrebbe trattarsi di un problema di NumPy.) –

+0

Ok, l'ho provato con un frame 10x10 più piccolo e non sono riuscito a riprodurlo dopo quasi 100 tentativi. Quindi forse le dimensioni contano qui. – user3111891

risposta

2

Ho riscontrato un problema simile oggi ed è stato causato da a bug in numexpr 2.4.4. Sembra mordere gli altri utenti di panda in vari modi, come riportato in this pandas ticket e altri collegati ad esso.

L'aggiornamento numexpr a 2.4.6 ha risolto il problema per noi, ma sembra che qualsiasi versione che non sia 2.4.4 dovrebbe andare bene!

+0

Grazie mactyr! Sembrava aggiustarlo. Per qualche strana ragione, il problema è andato via da solo per un po '. Ho reinstallato Anaconda diverse volte durante quel periodo per motivi non correlati, quindi ho pensato che la correzione potesse essere dovuta alle reinstallazioni. Poi all'improvviso, ieri, un aggiornamento di Windows mi ha spinto, e tutto si stava rompendo di nuovo. Ho aggiornato numexpr alla v2.5 e ora tutto è tornato alla normalità. Che strano bug! – user3111891

+0

@ user3111891, sì, penso che ci fosse una menzione nel ticket numexpr che ho collegato al problema essendo specifico di Windows; potrebbe essere collegato a aggiornamenti specifici o semplicemente a qualcosa sullo stato generale in cui si trova il sistema. Poiché sembra che tu sia d'accordo sul fatto che questa risposta risolva il problema, potresti contrassegnarlo come accettato? Non sono un grande utente di stackoverflow ma sarebbe bello avere un po 'di rappresentante per un lavoro ben fatto! :) (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – mactyr

+0

Ciao mactyr, sì, mi dispiace, stavo cercando di farlo, ma nella mia ignoranza stackoverflow, Ho provato a fare clic sulla freccia su, che è stata respinta dal sito perché anch'io sono newbie anch'io. Vedo l'assegno ora e sono felice di darti il ​​gran premio (congratulazioni!) E grazie per la condivisione! – user3111891