Каталог каналов Мои подборки Мои каналы Поиск постов Тарифы
Инструменты
Каталог TGAds Мониторинг Детальная статистика Анализ аудитории Бот аналитики
Полезная информация
Инструкция Telemetr Документация к API Чат Telemetr
Полезные сервисы

Не попадитесь на накрученные каналы! Узнайте, не накручивает ли канал просмотры или подписчиков Проверить канал на накрутку
Прикрепить Телеграм-аккаунт Прикрепить Телеграм-аккаунт

Телеграм канал «Постоянный репозиторий по Python»

Постоянный репозиторий по Python
376
0
1
0
383
Подписчики
Всего
1 823
Сегодня
0
Просмотров на пост
Всего
172
ER
Общий
9.44%
Суточный
5.49%
Динамика публикаций
Telemetr - сервис глубокой аналитики
телеграм-каналов
Получите подробную информацию о каждом канале
Отберите самые эффективные каналы для
рекламных размещений, по приросту подписчиков,
ER, количеству просмотров на пост и другим метрикам
Анализируйте рекламные посты
и креативы
Узнайте какие посты лучше сработали,
а какие хуже, даже если их давно удалили
Оценивайте эффективность тематики и контента
Узнайте, какую тематику лучше не рекламировать
на канале, а какая зайдет на ура
Попробовать бесплатно
Показано 7 из 376 постов
Смотреть все посты
Пост от 17.09.2026 10:18
2
0
0
🐼 Почему опытные аналитики почти никогда не используют apply(), если можно обойтись без него?

Одна из первых функций, которую осваивают в Pandas, — это apply().
Она кажется универсальным решением:
«Нужно обработать каждую строку? Используем apply().»
И действительно, код работает.
Но есть одна проблема…

Что происходит внутри?
Когда вы используете apply(axis=1), Pandas фактически начинает обрабатывать строки по одной.

То есть часть преимуществ Pandas теряется, и вычисления переходят на уровень обычного Python.
Из-за этого производительность может значительно снизиться на больших таблицах.

Как делают опытные разработчики?
Они сначала задают себе вопрос:
Можно ли решить задачу без apply()?
Например, вместо обработки каждой строки отдельно часто достаточно выполнить операцию сразу над целым столбцом:
df["revenue"] = df["price"] * df["quantity"]
Или использовать встроенные методы Pandas:
where()
mask()
map()
replace()
строковые методы .str
методы работы с датами .dt
Практически всегда они работают быстрее, потому что рассчитаны на обработку целых массивов данных.

Когда apply() действительно нужен?
Конечно, бывают ситуации, когда без него не обойтись.

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

Какой подход лучше?
Опытные разработчики обычно придерживаются такого порядка:
Попробовать решить задачу встроенными возможностями Pandas.
Если не получилось — использовать векторные операции.
И только потом задумываться об apply().

💡 Интересный факт
Во многих проектах замена нескольких вызовов apply() на векторные операции позволяет ускорить обработку данных в несколько раз, не меняя алгоритм и не используя дополнительные библиотеки.
Именно поэтому при код-ревью вопрос:
«А здесь точно нужен apply?
можно услышать очень часто.
Пост от 10.09.2026 10:15
21
0
1
🐼 Знаете ли вы, что Pandas умеет работать с данными, которые не помещаются в оперативную память?

Когда говорят о Pandas, часто можно услышать:
«Pandas подходит только для небольших таблиц.»
На самом деле это не совсем так.

Конечно, Pandas загружает данные в память, но это не означает, что он не способен обрабатывать большие файлы.
Представьте ситуацию
Есть CSV-файл размером 50 ГБ.
Если попытаться прочитать его обычным способом:
df = pd.read_csv("sales.csv")
то, скорее всего, памяти компьютера просто не хватит.
Но у Pandas есть режим построчной обработки.
Достаточно указать параметр chunksize:
import pandas as pd

total = 0

for chunk in pd.read_csv("sales.csv", chunksize=100_000):
# Каждый chunk — это обычный DataFrame
total += chunk["sales"].sum()

print(total)

Что здесь происходит?
Вместо загрузки всего файла Pandas:
читает первые 100 000 строк;
создаёт DataFrame;
отдаёт его программе;
освобождает память;
переходит к следующим 100 000 строк.

Таким образом можно обработать файл практически любого размера.

Где это полезно?
✅ журналы событий (лог-файлы);
✅ банковские транзакции;
✅ данные с датчиков;
✅ большие CSV-выгрузки из BI-систем;
✅ результаты работы ETL-процессов.

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

Зато вычислить:
сумму;
среднее;
количество записей;
статистики;
агрегаты по группам
можно без каких-либо проблем.

💡 Интересный факт
Многие считают, что для больших данных сразу нужно переходить на Spark или Dask.
На практике же оказывается, что правильное использование chunksize позволяет решить значительную часть задач обычными средствами Pandas, без развёртывания дополнительных систем.
Именно поэтому опытные аналитики сначала стараются максимально использовать возможности Pandas, а уже потом переходят к более тяжёлым инструментам.
Пост от 03.09.2026 10:09
2
0
0
🐼 Pandas – библиотека, без которой сложно представить современный анализ данных на Python

Если вы только начинаете изучать анализ данных, то рано или поздно столкнётесь с библиотекой Pandas.
Именно она стала стандартом де-факто для работы с табличными данными в Python.

С её помощью можно:
✅ читать данные практически из любых источников (CSV, Excel, SQL, Parquet и др.);
✅ очищать и преобразовывать данные;
✅ объединять таблицы (merge);
✅ выполнять группировки (groupby);
✅ работать с датами и временем;
✅ подготавливать данные для машинного обучения и визуализации.

Не случайно Pandas используют практически во всех направлениях Data Science, Data Analytics и Data Engineering.

Что изменилось в Pandas 3.0?
Версия 3.0 — это не просто очередное обновление. Разработчики внесли несколько изменений, которые делают библиотеку более предсказуемой и производительной.

1️⃣ Новый строковый тип данных
Раньше текстовые столбцы обычно имели тип:
object
Теперь по умолчанию используется специальный тип:
str
Это позволяет эффективнее работать со строками и уменьшает количество ошибок, когда в текстовый столбец случайно попадают объекты других типов. При наличии PyArrow под капотом это также может дать выигрыш в производительности и использовании памяти.

2️⃣ Copy-on-Write стал стандартом
Пожалуй, самое важное изменение.
Если вы работали с Pandas, то наверняка хотя бы раз видели загадочное предупреждение:
SettingWithCopyWarning
В Pandas 3.0 модель работы с копиями полностью переработана.
Теперь результат индексирования ведёт себя предсказуемо: изменения нужно вносить в исходный объект, а неоднозначное поведение с копиями и представлениями устранено. Благодаря этому SettingWithCopyWarning больше не используется.

3️⃣ Удалено множество устаревших возможностей
Версия 3.0 завершает переход, который начался ещё в ветке 2.x.
Если при работе с Pandas 2.3 вы не получали предупреждений об устаревших возможностях, то переход на 3.0 обычно проходит значительно проще.

Стоит ли переходить на Pandas 3?
Если вы начинаете новый проект – однозначно да.
Если же у вас есть большой существующий проект, сначала стоит протестировать его на Pandas 2.3, устранить предупреждения о совместимости, а уже затем переходить на версию 3.0. Именно такой путь рекомендуют разработчики библиотеки.
Пост от 25.08.2026 12:00
10
0
0
Пост от 25.08.2026 12:00
10
0
0
Пост от 19.08.2026 14:20
40
0
0
🐍 Срезы (slices) – одна из самых мощных возможностей Python

Большинство разработчиков используют срезы только для получения части списка. Но на самом деле с их помощью можно переворачивать последовательности, копировать коллекции и выбирать элементы с нужным шагом. Достаточно запомнить простую схему:

последовательность[начало:конец:шаг]

Если какой-либо параметр не указан, Python подставит значение автоматически.

numbers = [10, 20, 30, 40, 50, 60]

print(numbers[:3]) # Первые три элемента
print(numbers[2:]) # Все элементы, начиная с индекса 2
print(numbers[1:5]) # Элементы с 1 по 4 индекс
print(numbers[::2]) # Каждый второй элемент
print(numbers[::-1]) # Список в обратном порядке
print(numbers[-3:]) # Последние три элемента
print(numbers[:]) # Полная копия списка

💡 Полезно запомнить:
[:n] – первые n элементов;
[-n:] – последние n элементов;
[::-1] – самый быстрый способ развернуть последовательность;
[:] – создать поверхностную копию списка.

Эти четыре варианта встречаются в реальном Python-коде гораздо чаще, чем кажется на первый взгляд.
Пост от 18.08.2026 16:30
3
0
0
Смотреть все посты