Последние посты

Постоянный репозиторий по Python
17 сент., 07:18
🐼 Почему опытные аналитики почти никогда не используют apply(), если можно обойтись без него?Одна из первых функций, которую осваивают в Pandas, — это apply(). Она кажется универсальным решением: «Нужно обработать каждую строку? Используем apply().» И действительно, код работает. Но есть одна проблема…Что происходит внутри? Когда вы используете apply(axis=1), Pandas фактически начинает обрабатывать строки по одной.То есть часть преимуществ Pandas теряется, и вычисления переходят на уровень обычного Python. Из-за этого производительность может значительно снизиться на больших таблицах.Как делают опытные разработчики? Они сначала задают себе вопрос: Можно ли решить задачу без apply()? Например, вместо обработки каждой строки отдельно часто достаточно выполнить операцию сразу над целым столбцом: df["revenue"] = df["price"] df["quantity"] Или использовать встроенные методы Pandas:
Постоянный репозиторий по Python
10 сент., 07:15
🐼 Знаете ли вы, что Pandas умеет работать с данными, которые не помещаются в оперативную память?Когда говорят о Pandas, часто можно услышать: «Pandas подходит только для небольших таблиц.» На самом деле это не совсем так.Конечно, Pandas загружает данные в память, но это не означает, что он не способен обрабатывать большие файлы. Представьте ситуацию Есть CSV-файл размером 50 ГБ. Если попытаться прочитать его обычным способом: df = pd.read_csv("sales.csv") то, скорее всего, памяти компьютера просто не хватит. Но у Pandas есть режим построчной обработки. Достаточно указать параметр chunksize: import pandas as pdtotal = 0for chunk in pd.read_csv("sales.csv", chunksize=100_000): # Каждый chunk — это обычный DataFrame
Постоянный репозиторий по Python
3 сент., 07:09
🐼 Pandas – библиотека, без которой сложно представить современный анализ данных на PythonЕсли вы только начинаете изучать анализ данных, то рано или поздно столкнётесь с библиотекой Pandas. Именно она стала стандартом де-факто для работы с табличными данными в Python.С её помощью можно: ✅ читать данные практически из любых источников (CSV, Excel, SQL, Parquet и др.); ✅ очищать и преобразовывать данные; ✅ объединять таблицы (merge); ✅ выполнять группировки (groupby); ✅ работать с датами и временем; ✅ подготавливать данные для машинного обучения и визуализации.Не случайно Pandas используют практически во всех направлениях Data Science, Data Analytics и Data Engineering.Что изменилось в Pandas 3.0? Версия 3.0 — это не просто очередное обновление. Разработчики внесли несколько изменений, которые делают библиотеку более предсказуемой и производительной.1️⃣ Новый строковый тип
Постоянный репозиторий по Python
25 авг., 09:00

Постоянный репозиторий по Python
25 авг., 09:00



Постоянный репозиторий по Python
19 авг., 11:20
🐍 Срезы (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 элементов;
Постоянный репозиторий по Python
18 авг., 13:30

Постоянный репозиторий по Python
18 авг., 13:30



Постоянный репозиторий по Python
13 авг., 10:01

Постоянный репозиторий по Python
13 авг., 10:01



Постоянный репозиторий по Python
7 авг., 12:48
🐍 Почему pass — это не "ничего не делает"Когда изучают Python, часто говорят: pass — это оператор, который ничего не делает. Формально это правда. Но тогда возникает вопрос:Зачем он вообще нужен? Представьте, что вы только начинаете писать класс: class User: pass Или функцию: def process_data(): pass Или пока не реализовали одну из веток условия: if debug: pass else: print("Программа работает") Без pass такой код вообще не запустится.
Постоянный репозиторий по Python
6 авг., 08:02

Постоянный репозиторий по Python
6 авг., 08:02



Постоянный репозиторий по Python
29 июл., 07:55

Постоянный репозиторий по Python
29 июл., 07:55



Постоянный репозиторий по Python
20 июл., 07:47
🐍 sorted()не изменяет список. И это спасает от многих ошибок.Представьте ситуацию. Есть список:numbers = [5, 1, 8, 3, 2]Вы хотите вывести его в отсортированном виде и пишете:print(sorted(numbers))Получаете: [1, 2, 3, 5, 8]А теперь проверим исходный список:print(numbers)Результат: [5, 1, 8, 3, 2]Он не изменился.
Постоянный репозиторий по Python
13 июл., 08:38
🐍 Миф: если код короче — значит он лучше У Python есть репутация языка, на котором можно писать очень компактный код. Но иногда желание написать всё в одну строку приводит к обратному эффекту.Например:result = [x2 for x in numbers if x % 2 == 0 and x > 10 and x < 100]Такой код вполне корректен. Но попробуйте понять его через полгода. А теперь сравните с этим вариантом:result = []for number in numbers: if number % 2 != 0: continueif number <= 10 or number >= 100: continue
Постоянный репозиторий по Python
10 июл., 07:38

Постоянный репозиторий по Python
10 июл., 07:38



Постоянный репозиторий по Python
7 июл., 07:12
🐍 for ... else — одна из самых необычных конструкций Python Если спросить опытных разработчиков, какую конструкцию Python они используют реже всего, многие назовут именно for ... else. Хотя на самом деле она может сделать код намного понятнее.Посмотрите на пример.numbers = [4, 8, 15, 16, 23, 42]for number in numbers: if number == 15: print("Число найдено") break else: print("Число отсутствует")На первый взгляд кажется, что else относится к if. Но это не так.Как работает else у цикла?
