PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱Polars.

Polars — это потрясающе быстрая библиотека DataFrame для работы со структурированными данными. Ядро написано на Rust и доступна для Python, R и NodeJS.

🧩Ключевые особенности:

🔜Быстрая: Написана с нуля на Rust.

🔜I/O: Первоклассная поддержка всех общих слоев хранения данных: локальные, облачные хранилища и базы данных.

🔜Интуитивный API: Пишите запросы так, как они были задуманы. Polars сам определит наиболее эффективный способ выполнения с помощью оптимизатора запросов.

🔜Out of Core: Стриминговый API позволяет обрабатывать результаты без необходимости загружать все данные в память одновременно.

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

🔜Векторизованный движок запросов: Использует Apache Arrow, колоннарный формат данных, для векторной обработки запросов и SIMD для оптимизации использования ЦП.

❓Что такое DataFrame?

DataFrame — это двумерная структура данных, полезная для манипуляции и анализа данных. С метками для строк и столбцов, каждый столбец может содержать разные типы данных, что значительно упрощает выполнение сложных операций, таких как объединение и агрегация. Благодаря своей гибкости и интуитивному способу хранения и работы с данными, DataFrame становятся все более популярными в современной аналитике данных и инженерии.

#Polars #DataFrame #Rust #Python #R #NodeJS #BigData #DataScience #Программирование #ApacheArrow #SIMD #ОптимизацияЗапросов #Параллельность #OutOfCore #I_O

📱Ссылка на репозиторий:
https://github.com/pola-rs/polars
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6⚡22
📱DeltaBase.

DeltaBase — это легкое и комплексное решение для управления Delta Tables как в локальных, так и в облачных средах.

✅Построенный на высокопроизводительных фреймворках polars и deltalake, DeltaBase упрощает работу с данными, предоставляя такие функции, как upsert, delete, commit и контроль версий.

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

#DataEngineering #DeltaTables #DataVersioning #CloudData #DataManagement #DataOps #Polars #DeltaLake #DataConsistency

📱Ссылка на репозиторий:
https://github.com/uname-n/deltabase
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍3🔥2
📱Ryp.

ryp
— это легковесная, но мощная библиотека для Python, которая открывает новые возможности для работы с R.

✅Она позволяет легко запускать R-код прямо внутри Python, обеспечивая мгновенную передачу больших наборов данных (NumPy/pandas/polars) между Python и R без записи на диск.

✅С ryp можно интерактивно работать в обоих языках одновременно, что упрощает анализ данных и ускоряет рабочие процессы.

❓Почему ryp?

В отличие от популярной библиотеки rpy2, ryp обеспечивает:

🔘Повышенную стабильность и простоту API.
🔘Интерактивные вывод R-переменных, как в самом R.
🔘Полнофункциональный терминал R внутри Python.
🔘Построение графиков прямо в Jupyter с пакетом svglite.
🔘Молниеносное преобразование данных с Arrow.
🔘Поддержку всех типов данных NumPy, pandas и polars.
🔘Полноценную поддержку Windows.

#DataScience #Python #RStats #PythonInR #BigData #MachineLearning #DataVisualization #Jupyter #NumPy #pandas #polars #Arrow

📱Ссылка на репозиторий:
https://github.com/Wainberg/ryp
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍4🔥2
📱Patito.

Patito — это Python-библиотека, которая объединяет возможности Pydantic и Polars для удобной, строгой и типизированной работы с датафреймами.

Хочешь валидировать датафреймы так же удобно, как Pydantic-модели? Patito позволяет описывать схему данных с помощью аннотаций типов, генерировать валидные тестовые данные и легко превращать строки таблицы в полноценные Python-объекты.

🔹Возможности:

🔘Валидация датафреймов с понятными ошибками.

🔘Генерация mock-данных для тестов.

🔘Преобразование строк в классы с методами.

🔘Автоматическое заполнение полей по выражениям (derive).

#python #patito #pydantic #polars #датасайенс #типизация #валидация #pytest #данные #тестирование

📱Ссылка на репозиторий:
https://github.com/JakobGM/patito
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🔥1🤔1
📱hvPlot.

hvPlot — высокоуровневая библиотека визуализации данных для Python.

hvPlot — это удобный и мощный API для построения графиков, созданный на основе знакомого интерфейса .plot из Pandas и расширенный инновационным .interactive API для лёгкого добавления интерактивности.

❓Почему hvPlot?

🔘Работает с популярными источниками данных: Pandas, Polars, XArray, Dask, Streamz, Intake, GeoPandas, NetworkX и другими.

🔘Поддерживает несколько бэкендов построения графиков: Bokeh, Matplotlib, Plotly.

🔘Объединяет возможности экосистемы HoloViz в едином и простом API.

🔘Подходит для быстрых исследований, построения отчётов и создания интерактивных приложений.

🔻Пример использования:
import numpy as np
import pandas as pd

idx = pd.date_range('1/1/2000', periods=1000)
df = pd.DataFrame(np.random.randn(1000, 4), index=idx, columns=list('ABCD')).cumsum()

import hvplot.pandas # подключаем hvPlot для Pandas
df.hvplot() # строим график


#Python #DataViz #Visualization #DataScience #Pandas #Matplotlib #Bokeh #Plotly #hvPlot #HoloViz #GeoPandas #XArray #Polars #Dask

📱Ссылка на репозиторий:
https://github.com/holoviz/hvplot
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥3👍2⚡1
📱Riffq.

riffq — это инструмент на Python и Rust, который позволяет делать из ваших данных и кода полноценную базу данных с интерфейсом PostgreSQL.

🔹Возможности:

🔘Wire-протокол PostgreSQL (simple + extended) реализован на Rust для скорости и многопоточности.

🔘SQL-запросы перенаправляются в Python (DuckDB, Polars, Pandas и др.).

🔘Поддержка pg_catalog (совместимость с клиентами Postgres).

🔘Подключение к внешним источникам (CRM, аналитические БД) и объединение их в единый SQL-интерфейс.

🔘Сервинг DataFrame как виртуальных таблиц.

🔘Программируемый движок федеративных запросов.

🔻Примеры использования:

🔘Поднять Pandas DataFrame как PostgreSQL-таблицу для BI-инструментов.

🔘Построить federated query engine из нескольких API и БД.

🔘Реализовать фронтенд для data lake.

🔘Экспонировать динамические ML feature-stores для обучения и продакшн-инференса.

#Python #Rust #PostgreSQL #DataEngineering #DuckDB #Polars #Pandas #BI #FederatedQuery #riffq

📱Ссылка на репозиторий:
https://github.com/ybrs/riffq
Please open Telegram to view this post
VIEW IN TELEGRAM
1331
📱Python_uv_template.

python_uv_template — это Copier‑шаблон для быстрого старта Python data‑проектов с современным стеком: uv, ruff, ty, Marimo, Polars, DuckDB и автогенерацией документации.

❓Что в коробке:

🔘Инструменты качества: ruff (lint+format), ty (typing), pytest + coverage, pre‑commit hooks.

🔘Data stack: Marimo‑notebooks (реактивные .py), Polars DataFrames, DuckDB для SQL, Seaborn viz.

🔘Документация: MkDocs + Material, mkdocstrings API‑docs, mike для версионирования.

🔘CI/CD: Commitizen для conventional commits, Docker‑контейнеризация, AGENTS.md для AI‑агентов.

🚀Старт:

uvx copier copy https://github.com/mameli/python_template.git .


🔺Обновление проекта под новую версию шаблона: uvx copier update --defaults

#python #uv #copier #datascience #marimo #polars #duckdb #projecttemplate

📱Ссылка на репозиторий:
https://github.com/mameli/python_template
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
📱Nitro-pandas.

nitro-pandas — это pandas‑обёртка поверх Polars: пишете привычный pandas‑код, а под капотом крутится Rust‑движок Polars с 5–10x ускорением.

❓Зачем:

🔘Не переписывать тысячи строк кода: меняете import pandas as pd на import nitro_pandas as npd — всё остальное работает.

🔘Lazy evaluation: read_csv_lazy() + .query() + .collect() оптимизируют запросы до выполнения.

🔘Fallback: если метод ещё не реализован в Polars, автоматически вызывается pandas.

🔻Что не так же:

🔘Polars не разрешает смешанные типы в одном столбце — всё приводится к общему типу.

🔘Нет inplace=True: операции всегда возвращают новый DataFrame.

pip install nitro-pandas


#python #pandas #polars #nitropandas #datascience #performance

📱Ссылка на репозиторий:
https://github.com/Wassim17Labdi/nitro-pandas
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥3👍2
📱PySuricata.

PySuricata
- это быстрый и легковесный инструмент для исследовательского анализа данных (EDA) на Python, построенный на потоковых алгоритмах.

Главная проблема большинства инструментов профилирования данных — они требуют загрузки всего датасета в оперативную память и выполняют множество тяжелых прогонов. PySuricata считывает данные всего за один проход (single pass), сохраняя фиксированный расход RAM независимо от количества строк в таблице.

🔹Главные фичи и преимущества:

🔘Потоковая архитектура: Данные обрабатываются чанками. Обработка 1 миллиона строк требует не больше памяти, чем 20 тысяч, что позволяет анализировать датасеты, превышающие объем RAM.

🔘Глубокая интеграция с Arrow и экосистемой: Нативно работает с pandas, polars (включая LazyFrame), файлами Parquet, Arrow IPC (.arrow, .feather) и запросами DuckDB без промежуточной материализации всего фрейма.

🔘Честная математика и вероятностные структуры: Для моментов распределений (среднее, дисперсия, асимметрия) используется потоковый алгоритм Уэлфорда/Пебая, для подсчета уникальных значений — скетчи KMV, а для частых элементов — алгоритм Мизры-Гриса. В отчете честно указываются границы погрешностей приближенных оценок.

🔘Автономный HTML-отчет в один файл: На выходе получается единый self-contained HTML-файл со встроенными SVG, стилями и скриптами, который можно пересылать по почте и открывать без подключения к интернету.

🔘Контроль качества и дрейфа данных в CI/CD:

✔️summarize() — отдает чистый версионированный JSON со метриками;

✔️compare() — рассчитывает смещение признаков между двумя выборками;

✔️pysuricata check / официальный GitHub Action — блокирует пайплайн (exit code $\ne 0$), если превышен процент пропусков или обнаружен дрейф данных.

🚀Быстрый старт:

import pandas as pd
from pysuricata import profile

df = pd.read_csv("large_dataset.csv")

# Анализируем данные и сохраняем автономный отчет
profile(df).save_html("report.html")


Анализ файлов напрямую (без загрузки в DataFrame):


from pysuricata import profile

# Потоковое чтение Parquet-файла без перегрузки RAM
report = profile("data/events.parquet")
report.save_html("events_report.html")


📦Установка:

pip install pysuricata
# или через uv:
uv add pysuricata


#Python #PySuricata #DataScience #EDA #Pandas #Polars #DuckDB #DataEngineering #MachineLearning #OpenSource #DevTools

📱Ссылка на репозиторий:
https://github.com/alvarodiez20/pysuricata
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥3👍21
📱Flowfile.

Flowfile
- это инструмент для визуального построения ETL-пайплайнов, который компилируется в высокопроизводительный код на Polars.

Главная идея проекта — стереть грань между визуальным no-code/low-code и классической разработкой: визуальный холст (canvas) с нодами и Python-код являются двумя синхронными представлениями одного и того же графа вычислений.

Flowfile работает без тяжелых кластеров (вроде Apache Spark): все преобразования выполняются in-process на базе Polars, утилизируя ресурсы одной машины на максимум.

🔹Ключевые возможности:

🔘Холст + Код (Dual-Mode):

✔️49 готовых типов узлов: джойны, нечеткое сопоставление (fuzzy matching), сводные таблицы (pivot), оконные функции, агрегации, древовидное разворачивание (bill-of-materials explosion) и ветвление.

✔️Редактор формул с 95 встроенными функциями.

✔️Узел произвольного Polars-кода для специфической логики, не покрытой стандартными блоками.

✔️Живое интерактивное превью данных (Live Data Preview) на каждом этапе пайплайна.

🔤Генерация чистого Python-кода: Вы можете быстро спроектировать логику визуально, а затем экспортировать её в лаконичный независимый скрипт на чистом Polars (import polars as pl) без необходимости тащить Flowfile на прод. Графы сохраняются в человекочитаемом YAML для версионирования в Git.

🔤Встроенный AI-ассистент: Позволяет генерировать и модифицировать структуру пайплайна прямо на холсте по текстовому описанию задачи (поддерживаются ключи OpenAI, Anthropic, Google, Groq, OpenRouter или локальная Ollama).

🔤Каталог данных на Delta Lake и SQL: Встроенный каталог таблиц с поддержкой версионирования, Time Travel и предикатного пушдауна (pushdown) в виртуальных таблицах. Для исследовательской работы есть встроенный SQL-редактор (Polars SQLContext) и модуль визуализации графиков Graphic Walker (аналог Tableau).

🔤Источники и коннекторы: Локальные файлы (CSV, Parquet, Excel, JSON), СУБД (PostgreSQL, DuckDB, MySQL, SQLite, SQL Server), облачные хранилища (S3, GCS, ADLS с поддержкой Delta Lake и Iceberg на чтение), Kafka (consumer) и внешние REST API.

🔤Запуск в любом окружении:

✔️В браузере: мгновенная работа через WebAssembly / Pyodide на demo.flowfile.org без установки и сервера;

✔️Локально на ноутбуке: установка в одну команду через pip или готовые десктопные приложения (Tauri);

✔️В команде: развертывание через Docker Compose с авторизацией, ролями пользователей, общим каталогом, планировщиком задач (scheduler) и изолированными Jupyter-подобными Python-кернелами.

💻Пример кода на Python:

Вы можете описать пайплайн кодом через API в стиле Polars и в один вызов открыть его в визуальном редакторе:

import flowfile as ff
from flowfile import col, open_graph_in_editor

# Загрузка и трансформация данных
df = ff.from_dict({
"category": ["A", "B", "A", "C", "B"],
"value": [100, 200, 150, 300, 250]
})

result = (
df.filter(col("value") > 150)
.with_columns((col("value") * 2).alias("double_value"))
.group_by("category")
.agg(col("value").sum().alias("total"))
)

# Открытие собранного графа в визуальном интерфейсе
open_graph_in_editor(result.flow_graph)


🚀Быстрый запуск:

Установка и запуск UI на локальной машине (Python 3.10–3.13):

pip install Flowfile
flowfile run ui


Командный запуск в Docker Compose:


git clone https://github.com/edwardvaneechoud/Flowfile.git
cd Flowfile
docker compose up -d
# Веб-интерфейс будет доступен по адресу http://localhost:8080


✅Проект распространяется под свободной лицензией MIT.

#Flowfile #Python #Polars #ETL #DataEngineering #DataScience #SQL #DeltaLake #DuckDB #OpenSource #DevTools #DataPipelines

📱Ссылка на репозиторий:
https://github.com/Edwardvaneechoud/Flowfile
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41