Обновить
1024K+

Python *

Высокоуровневый язык программирования

640,18
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Лучший формат данных для хранения pandas.DataFrame

Время на прочтение4 мин
Охват и читатели14K

Привет, Хабр!

Меня зовут Вадим Москаленко и я разработчик инновационных технологий Страхового Дома ВСК. В этой статье, хочу поделится с вами, информацией в области хранения данных.

На сегодняшний день существует огромное количество форматов для хранения данных, и, используя библиотеку Pandas при обработке большого объёма данных, возникает вопрос – а какой формат, с которыми Pandas работает «из коробки», даст наибольшую производительность, при дальнейшем использовании, обработанного DataFrame?

Ремарка: поиск информации по этой теме, привёл меня к репозиторию, за авторством Devforfu (ссылка), но так как информация в нём датируется 2019 годом, а за этот период вышло множество обновлений, я решил написать «свежий» бенчмарк, основываясь на принципах автора – ссылка на обновленный бенчмарк. Отмечу, что из-за слишком большой разницы в полученных результатах, я склоняюсь к тому, что мог совершить ошибку, поэтому далее в статье будет указана информация по оригиналу.

В качестве тестируемых форматов использовались следующие варианты: CSV (как самый популярный текстовый формат), Pickle, Feather, Parquet, Msgpack, HDF. Для сравнения будем использовать следующие метрики: размер сериализованного файла, время загрузки DataFrame из файла, время сохранения DataFrame в файл, потребление оперативной памяти при сохранении и загрузке DataFrame.

Тестовые данные – сгенерированный DataFrame с 1 миллионом строк, 15 столбцами цифр и 15 столбцами строковых значений. Генерация численных данных проводилась с помощью numpy. random.normal, в качестве строчных данных использовались UUID. С появлением в Pandas, категориального типа данных (Categorical data), который использует гораздо меньше памяти и более производительней в обработке (обширный материал для другой статьи), интересно также сравнить насколько изменится производительность форматов, поэтому ещё одним этапом сравнения в тестовых данных стал перевод формата «object» к формату «category».

Читать далее

Алиса, Яндекс.Станция и Nigthscout

Время на прочтение4 мин
Охват и читатели5.2K

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

Сервис Nightscout, представляющий собой веб-приложение с базой данных об уровне глюкозы и событиях терапии, позволяет обращаться к себе по API с запросом информации. А всем известная голосовая помощница и колонка с ней - позволяет разрабатывать для себя индивидуальные варианты диалогов "запрос" - "ответ".

Например, "скажи, какой уровень глюкозы у ... ?". а в ответ: "уровень такой-то, снижение/рост на столько-то, за последние Х минут снижение/рост умеренный/сильный на Y ммоль на литр." (немного легкой аналитики и выводов).

Итак, по шагам.

Читать далее

Управление микроконтроллером через telegram-бот с обратной связью

Время на прочтение8 мин
Охват и читатели39K

Как управлять различными устройствами: свет, вентиляция, полив, а также получать нужные данные от микроконтроллера.

При этом для учебно-тренировочных или DIY-задач совершенно не хочется задействовать дополнительные устройства, на которых будет размещаться сервер и уж тем более не оплачивать внешний статический IP-адрес.

Читать далее

YAML из Ада

Время на прочтение9 мин
Охват и читатели106K

Формат данных YAML чрезвычайно усложнён. Он задумывался как удобный для человека, но в стремлении к этой цели сложность настолько увеличилась, что, по моему мнению, его разработчики достигли противоположного результата. В YAML есть куча возможностей выстрелить себе в ногу, а его дружелюбие обманчиво. В этом посте я хочу продемонстрировать это на примере.

Данный пост является нытьём и он более субъективен, чем мои обычные статьи.
Читать дальше →

Как подсветить временные отрезки на графиках

Время на прочтение5 мин
Охват и читатели5.7K

Как отобразить временные интервалы вместе с графиком временного ряда, с разными цветами для разных групп? Иногда хочется увидеть как события влияют на метрику. Рассмотрим на примере изменений температуры и извержений российских вулканов.

Читать далее

Приглашаем на Ozon Tech Community QA (Python) Meetup

Время на прочтение2 мин
Охват и читатели3K

UPD: Добавили записи докладов и слайды

Всем привет!

Меня зовут Игорь, и я руковожу тестированием в Ozon Fintech. 

Внутри Ozon тестирование на Python популярно в командах логистики, склада, маркетплейса и всего финтеха. Почему мы используем этот язык?

Ответы на поверхности:

Он прост в изучении и применении – это позволяет нам находить кандидатов, не знающих Python, и быстро погрузить их в язык.

При этом это самый популярный язык автоматизирования тестирования, и, как следствие, много материалов по теме и кандидатов на рынке =)

Batteries Included Philosophy.

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

Больше о нашем подходе к тестированию на Python мы расскажем на первом в этом году открытом Ozon Tech Community QA (Python) Meetup 18 января в 18:00 в Москве.

Читать далее

Абсолютно бесплатный VPN с бесплатного VPS

Время на прочтение3 мин
Охват и читатели336K

Думаю про VPN слышали все, и многим приходилось им пользоваться. При этом использование готового VPN, которым руководит какой - то неизвестный человек, не является хорошей идей. Тем более в России на данный момент пытаются блокировать, как сами VPN провайдеры (Windscribe, Proton и другие известные сервисы), так и сами протоколы.

Читать далее

Решение бизнес-задачи с помощью многофакторного кластерного анализа и здравого смысла

Время на прочтение7 мин
Охват и читатели6.3K

Привет, Хабр!

Меня зовут Сергей Исупов, я Data Scientist и являюсь участником профессионального сообщества NTA. В рамках данной публикации я постарался не только поделиться своим практическим опытом решения аналитической задачи, но и уделить внимание профессиональным особенностям, связанным и с софт-скиллами, так как глубоко убеждён, что когнитивные умения в работе не менее важны, чем умение использовать тот или иной инструмент.

Читать далее

Кликер «полет поросенка» — распознавание и «клики» с opencv

Время на прочтение3 мин
Охват и читатели4.6K

Статья не содержит описания важных достижений, просьба относиться к ней как к DIY поделке. Когда искал ответ на вопрос не нашел (плохо искал) решения с применением openCV, а так же двух и более камер для наблюдения за объектами.

Читать далее

Как отправить и скачать файл в FastAPI

Время на прочтение2 мин
Охват и читатели59K

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

(Примеры кода можно использовать, как основу, которую при необходимости можно без каких-либо сложностей расширять под вашу конкретную задачу)

Не буду долго расписывать предисловие, приступим к разбору.

Читать далее

Знакомство с Fugue — уменьшаем шероховатости при работе с PySpark

Время на прочтение15 мин
Охват и читатели3.2K

Автор оригинальной статьи: Kevin Kho

Повышение производительности разработчиков и снижение затрат на проекты Big Data

Читать далее

Hydrosphere — управляем ML как сервисом

Время на прочтение7 мин
Охват и читатели2.4K

Подобно тому, как в мире разработки многокомпонентных систем применяются подходы для управления и мониторинга микросервисами на основе инструментов DevOps (для запуска и восстановления сервисов, передачи данных, наблюдения за распределенными операциями, выполнение замеров и получение операционных метрик), так же и для моделей машинного обучения становится важным обеспечить возможность их развертывания, обновления и наблюдения за метриками (точность модели, время выполнения прямого прохождения нейронной сети и другими). В обобщенном виде такие решения получили названия MLOps и в этой статье мы рассмотрим возможности платформы Hydrosphere 3.0.

Читать далее

Polars: библиотека для работы с данными, написанная на RUST

Время на прочтение6 мин
Охват и читатели43K

Настоящий хреновый программист всегда находится на гребне волны новых технологий. Зачем ему это? Чтобы при случае можно было повыделоваться багажом своих знаний, и заработать немного очков уважения в окружении своих менее осведомлённых коллег. Stay toxic, brothers. Я с вами.

Когда-то давно мне нужно было обработать чуть больше тысячи жирнейших excel-таблиц и сделать это нужно было быстро. Буквально за час я вкатился в Python и Pandas, а за второй час выполнил все необходимые манипуляции. Так я и познакомился с этими двумя. С тех самых пор приходилось выполнять самые разные задачи по анализу данных и всё бы ничего, но хотелось бы, чтобы Pandas работал побыстрее. Оказывается хотелось не одному мне, а целой команде разработчиков, на Rust.

Как и полагается, всё что на Rust то Blazingly-Fast, и Polars не стала исключением. За счёт чего Polars быстрее Pandas? Что это за библиотека и стоит ли на неё переходить? Давайте попробуем разобраться в этой статье.

Читать далее

Ближайшие события

Что есть функция в Python?

Время на прочтение9 мин
Охват и читатели21K

В начале же статьи предупрежу:

Эта статья предназначена только для тех людей, которым хочется узнать,чем на самом деле является функция в python....НО! Предупреждаю, я не буду лезть в сурсы питона. Эта статья была создана только для обычных вроде меня программистов.

Статья будет состоять из 4 частей:

1. Как осуществляется поиск атрибутов в классах
2. Что есть метод и как он вызывается
3. Что есть функция и как она вызывается
4. Вывод

Читать далее...

От треугольника Серпинского до «снежинок». Реализовано на Python

Время на прочтение3 мин
Охват и читатели11K

От треугольника Серпинского до "снежинок". В этой статье я поделюсь своим опытом построения треугольника Серпинского и расскажу, к чему привели дальнейшие эксперименты с фракталами подобного типа. Реализовано на Python.

Читать далее

Крепкие сборки с планировщиками контейнеров, только без контейнеров

Время на прочтение7 мин
Охват и читатели3.2K
image

Если мы с вами похожи, то, всякий раз, когда вы пишете Dockerfile, вам приходится снова следить, что он выкинет. Заходя в какой-то контейнер через+ exec, вы не представляете, будет ли там bash, sh или какая-нибудь другая оболочка. Вы также не знаете, какой контейнерный init сейчас рекомендуется как наилучшая практика. Я определенно до сих пор не знаю, что за фрукт этот Moby.
Читать дальше →

Пишем ETL-процесс на Python

Время на прочтение5 мин
Охват и читатели18K

ETL-процесс без итерации по спискам и прочей “вложенности” на основе паттерна проектирования “Цепочка обязанностей”.

Читать

Web3: пишем небольшой фреймворк для работы со смарт-контрактами на Python

Время на прочтение17 мин
Охват и читатели5.7K

Привет, Хабр! В данной статье изначально планировалось поделиться процессом написания выпускной работы, но что-то пошло не так и, в итоге, по чистой случайности получился фреймворк. Здесь я постараюсь описать основные принципы его работы, поделюсь предпосылками создания и приведу парочку примеров применения.

Читать далее

Телеграм бот на Python, для напоминаний о реквестах на BitBucket

Время на прочтение6 мин
Охват и читатели8.1K

Бот - для работы с репозиторием проекта в BitBucket.

Приветствую любителей ботов :-) Позвольте представить вашему вниманию бота для работы с репозиторием проекта в BitBucket.

Краткое описание моих скромных трудов.

Посмотреть подробнее

Ultralytics YOLOv8

Время на прочтение5 мин
Охват и читатели84K

YOLOv8 - это новейшее семейство моделей обнаружения объектов на базе YOLO от Ultralytics, обеспечивающих самые современные характеристики.

Читать далее