Wspólnie z kolegą przeprowadziliśmy wstępne badania różnic w wydajności między pandami a tabelą danych. Możesz znaleźć badanie (które zostało podzielone na dwie części) na naszym blogu (część druga znajdziesz tutaj ).
Doszliśmy do wniosku, że istnieją pewne zadania, w których pandy wyraźnie przewyższają tabelę danych. Ale także przypadki, w których tablica danych jest znacznie szybsza. Możesz to sprawdzić samodzielnie i dać nam znać, co myślisz o wynikach.
EDYCJA:
Jeśli nie chcesz szczegółowo czytać blogów, oto krótkie podsumowanie naszej konfiguracji i naszych ustaleń:
Ustawiać
Porównaliśmy pandas
i data.table
na 12 różnych symulowanych zestawach danych dotyczących następujących operacji (jak dotąd), które nazwaliśmy scenariuszami.
- Pobieranie danych za pomocą operacji wyboru
- Filtrowanie danych za pomocą operacji wyboru warunkowego
- Operacje sortowania danych
- Operacje agregacji danych
Obliczenia przeprowadzono na komputerze z procesorem Intel i7 2.2GHz z 4 rdzeniami fizycznymi, 16 GB pamięci RAM i dyskiem twardym SSD. Wersjami oprogramowania były OS X 10.13.3, Python 3.6.4 i R 3.4.2. Odpowiednie zastosowane wersje bibliotek to 0,22 dla pand i 1,10,4-3 dla tabeli danych
Wyniki w pigułce
data.table
wydaje się być szybszy przy wyborze kolumn ( pandas
średnio zajmuje o 50% więcej czasu)
pandas
jest szybszy w filtrowaniu wierszy (średnio około 50%)
data.table
wydaje się być znacznie szybszy w sortowaniu ( pandas
czasami był 100 razy wolniejszy)
- dodanie nowej kolumny pojawia się szybciej dzięki
pandas
- wyniki agregacji są całkowicie mieszane
Pamiętaj, że starałem się maksymalnie uprościć wyniki, aby nie zanudzić cię na śmierć. Aby uzyskać pełniejszą wizualizację, przeczytaj badania. Jeśli nie możesz uzyskać dostępu do naszej strony internetowej, wyślij mi wiadomość, a ja przekażę Ci nasze treści. Możesz znaleźć kod pełnego badania na GitHub . Jeśli masz pomysły na ulepszenie naszego badania, napisz do nas e-mail. Możesz znaleźć nasze kontakty na GitHub.