Какой самый быстрый способ рассортирования 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, вы обнаружите, что он реализован на нескольких объектах.