Pandas msgpack против рассола

msgpack в Pandas заменит pickle .

В документах Pandas на msgpack :

Это легкий переносимый двоичный формат, похожий на двоичный JSON, который обладает высокой эффективностью в пространстве и обеспечивает хорошую производительность как при записи (сериализации), так и при чтении (десериализации).

Однако я считаю, что его производительность, похоже, не складывается против рассола.

 df = pd.DataFrame(np.random.randn(10000, 100)) >>> %timeit df.to_pickle('test.p') 10 loops, best of 3: 22.4 ms per loop >>> %timeit df.to_msgpack('test.msg') 10 loops, best of 3: 36.4 ms per loop >>> %timeit pd.read_pickle('test.p') 100 loops, best of 3: 10.5 ms per loop >>> %timeit pd.read_msgpack('test.msg') 10 loops, best of 3: 24.6 ms per loop 

Вопрос: Из-за потенциальных проблем безопасности с рассолом, каковы преимущества msgpack над рассолом? Является ли рассол еще предпочтительным методом сериализации данных или в настоящее время существуют лучшие альтернативы?

One Solution collect form web for “Pandas msgpack против рассола”

Рассол лучше для следующего:

  1. Числовые данные или все, что использует буферный протокол (массивы numpy) (хотя, только если вы используете несколько недавний protocol= )
  2. Специфичные для Python объекты, такие как классы, функции и т. Д. (Хотя здесь вы должны посмотреть на cloudpickle )

MsgPack лучше для следующего:

  1. Межъязыковое взаимодействие. Это альтернатива JSON с некоторыми улучшениями
  2. Производительность по текстовым данным и объектам Python. Это достойный фактор быстрее, чем Pickle при этом при любых настройках.

Как отметил @Jeff выше, этот блогпост может представлять интерес http://matthewrocklin.com/blog/work/2015/03/16/Fast-Serialization/

  • Как применить Cython к Pandas DataFrame
  • Эффективный расчет бета-счета Pandas Pandas на многих фреймах данных
  • Итерация через Pandas Groupby и слияние данных
  • очистка больших данных с помощью python
  • Чтение больших текстовых файлов с помощью Pandas
  • Использование Pandas для поиска количества периодов, так как Rolling High
  • Присоединиться к дате даты, основанной на DataFrame, находится между датами от другого DataFrame
  • Эффективная запись больших кадров данных Pandas на диск
  • Python - лучший язык программирования в мире.