Формат CSV — один из самых популярных форматов для обмена данными. Это связано с тем, что, будучи основанным на простом тексте, он может быть интерпретирован практически любым программным обеспечением в любой операционной системе.

Тем не менее, это тоже проблема, поскольку CSV-файл занимает слишком много места, а процессы чтения и записи выполняются медленно.

Для решения этой проблемы и выполнения более эффективного процесса обмена данными был разработан формат Feather. Как заявили они сами, Feather — это «Быстрый дисковый формат для фреймов данных для R и Python на базе Apache Arrow».

Следовательно, он был специально разработан с целью хранения кадров данных самым быстрым и эффективным способом.

Перышко в пандах

В Pandas уже есть функция read_feather(), и все кадры данных pandas имеют свойство to_feather(), которое позволяет нам работать с Feather точно так же, как с обычными файлами .csv.

Преимущества

Использование перьев имеет два основных преимущества по сравнению с обычными CSV-файлами, первое из которых — меньший размер файла, поскольку пространство, которое занимает перьевой файл, похоже на то, что мы получили бы после сжатия эквивалентного CSV-файла. Второе преимущество перьев заключается в том, что они обеспечивают более быстрые операции чтения и записи в кадре данных.

Недостатки

Одним из возможных недостатков Feather по сравнению с CSV является то, что вы не можете редактировать файл с помощью текстового редактора. Несмотря на то, что это редко делается с большими файлами, можно воспользоваться преимуществами Feather.

Сравнение Feather и .csv

Чтобы сравнить как Feather, так и .csv, мы можем создать поддельный набор данных с помощью pandas, чтобы затем измерить время, необходимое для чтения и записи данных, а также размер файла.

В следующем коде мы создаем набор данных, состоящий из 5 столбцов и миллиона строк, чтобы затем измерить время чтения, время записи и размер файла.

Получаем следующие результаты, хотя пробег может варьироваться в зависимости от вашего компьютера:

Заключение

В целом, Feather — это оптимизированный и эффективный способ хранения данных. Это быстро для операций чтения и записи, а также минимизирует размер файла. Его также можно импортировать на другие языки, такие как Julia, R или Scala (для пользователей Spark).

Поэтому, если вы создаете импровизированные модели машинного обучения, проводите логическую статистику или какой-то EDA, нет причин не использовать его.

Надеюсь, вы скоро попробуете!

Получить код: