2015-11-10 21 views
5

Zastanawiam się, czy ktoś wcześniej widział ten problem z Pandami. Zasadniczo próbuję dodać, pomnożyć i podzielić element DataFrames element po elemencie (wszystkie ramki mają identyczne indeksy i kolumny), ale Pandy wypluwają różne wyniki dla tych samych obliczeń wykonywanych kolejno.Niestabilność obliczeń ramek danych pandy

Obraz niektórych przykładowych wyników przedstawiono poniżej. Użyłem kodu .values w poniższym kodzie, ponieważ w celach wyświetlania, ale niestabilność może się zdarzyć podczas używania .add(), .mul() lub .div(). Na przykład, jeśli wielokrotnie wprowadzam N11.add(N00), zazwyczaj otrzymuję poprawną odpowiedź, ale czasami (co 4 lub 5 raz) otrzymuję ramkę DataFrame wypełnioną zerami.

enter image description here

Jeśli ma to znaczenie, jestem na Windows 10 przy użyciu dystrybucji Anakonda pand 0.17.0 (z Pythona na Spyder 2.7.10 2.3.7). Ramki, z którymi pracuję są duże (6856 na 12511). Czy ktoś inny napotkał ten problem? Czy jest to znany problem, czy też robię coś złego?

+0

Interesujące - czy można odtworzyć zachowanie za pomocą mniejszych DataFrames i opublikować je jako część pytania tutaj? –

+0

(Także jeśli po prostu mnożysz tablice NumPy, może to być problem NumPy.) –

+0

OK, próbowałem go z mniejszą ramką 10x10 i nie mogłem go odtworzyć po prawie 100 próbach. Więc może rozmiar ma tutaj znaczenie. – user3111891

Odpowiedz

2

Spotkałem podobny problem dzisiaj i zostało spowodowane przez a bug in numexpr 2.4.4. Wygląda na to, że gryzą innych użytkowników pandy na różne sposoby, jak to opisano w this pandas ticket i innych powiązanych z nim.

Aktualizacja numexpr do wersji 2.4.6 rozwiązała problem, ale wygląda na to, że jakakolwiek wersja, która nie jest 2.4.4, powinna wystarczyć!

+0

Dzięki mactyr! Wydawało się, że to naprawia. Z jakiegoś dziwnego powodu problem sam ustąpił. W tym okresie ponownie instalowałem Anaconę kilka razy z innych powodów, więc pomyślałem, że poprawka może wynikać z reinstalacji. Wtedy nagle, wczoraj aktualizacja systemu Windows została na mnie popchnięta, a wszystko znowu się łamało. Zaktualizowałem numexpr do wersji 2.5, a teraz wszystko wraca do normy. Co za dziwny błąd! – user3111891

+0

@ user3111891, tak, myślę, że była wzmianka w bilecie numexpr, do którego zostałem podłączony z powodu specyficznego dla systemu Windows; może być powiązany z konkretnymi aktualizacjami lub po prostu czymś na temat ogólnego stanu systemu. Ponieważ wydaje się, że zgadzasz się, że ta odpowiedź rozwiązuje problem, czy możesz oznaczyć go jako zaakceptowany? Nie jestem zbyt dużym użytkownikiem, ale byłoby miło dostać trochę przedstawiciela za dobrze wykonaną pracę! :) (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – mactyr

+0

Cześć mactyr, tak, przepraszam, próbowałem to zrobić, ale w mojej ignorancji stackoverflow, Próbowałem kliknąć strzałkę w górę, która została odrzucona przez stronę, ponieważ sam jestem zbyt początkującym. Widzę teraz czek i cieszę się, że mogę ci dać wielką nagrodę (gratulacje!) I dziękuję za podzielenie się! – user3111891

Powiązane problemy