Даже в 2026 году Pandas остается главной «головной болью» Python-разработчика. С выходом версий 2.x и 3.x правила игры изменились.
1. Итерация по строкам
❌ iterrows() — забудьте о нем. Он конвертирует каждую строку в
pd.Series, создавая дикий overhead.✅ itertuples() — если цикл неизбежен, он быстрее в 10–100 раз.
✅ Векторизация (np.where) — в 4000 раз быстрее.
> DS-совет: Если логика сложнее обычного сложения — используйте
.apply(), но стремитесь к векторизации через NumPy.2. Переименование
✅
.rename(columns=...) — самый безопасный путь. Не ломается при изменении схемы.✅
.str.lower().str.replace() — лучший способ массово привести колонки к snake_case.✅
add_prefix() — спасение при сложных merge, когда нужно быстро разделить признаки из разных таблиц.3. Война с NaN
NaN — это не просто пустая ячейка, это сигнал о проблеме в данных.
✅ Диагностика:
df.isna().sum() — база.✅ ffill() / bfill() — критически важны для временных рядов (Time Series), чтобы не терять динамику.
✅ fillna(median) — классика для ML-пайплайнов, но всегда проверяйте природу пропусков. Иногда
dropna(subset=[...]) — единственный честный путь.4. Фильтрация
✅ Булевы маски:
df[(df['A'] > 0) & (df['B'] < 1)] — классика. Важно: забудьте скобки — получите ошибку приоритета.✅ `.query()` — читается как SQL, поддерживает переменные через
@. Идеально для длинных условий.✅
.loc[] — единственный верный способ, если нужно одновременно отфильтровать строки и выбрать колонки.🔗 Ссылка на пост
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
