Какой самый быстрый способ рассортирования pandas DataFrame?
Что лучше, используя встроенный метод Pandas или pickle.dump
?
Стандартный метод рассола выглядит следующим образом:
pickle.dump(my_dataframe, open('test_pickle.p', 'wb'))
Встроенный метод Pandas выглядит следующим образом:
my_dataframe.to_pickle('test_pickle.p')
Ответы
Ответ 1
Благодаря @qwwqwwq я обнаружил, что pandas имеет встроенный to_pickle
метод для dataframes. Я быстро проверил время:
In [1]: %timeit pickle.dump(df, open('test_pickle.p', 'wb'))
10 loops, best of 3: 91.8 ms per loop
In [2]: %timeit df.to_pickle('testpickle.p')
10 loops, best of 3: 88 ms per loop
Итак, кажется, что встроенный интерфейс только немного лучше (мне это полезно, потому что это означает, что он, вероятно, не стоит рефакторинг кода для использования встроенного) - надеюсь, что это поможет кому-то!
Ответ 2
Легкий тест, верно?
![enter image description here]()
Совсем нет разницы, на самом деле я ожидаю, что Pandas реализует GetState, так что вызов pickle.dump(df)
на самом деле аналогичен вызову df.to_pickle()
.
Если вы ищете, например, __getstate__
в исходном коде Pandas, вы обнаружите, что он реализован на нескольких объектах.