Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 208новых вакансий за сутки·91 464вакансии открыты сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании7 137
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 401 кандидат открыт к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python17 131
  • Облачные технологии14 071
  • QA вакансии3 448
  • Backend вакансии2 087
  • Инженер данных1 783
  • Продакт-менеджер1 221

Разработка

  • Android1 862
  • iOS1 700
  • Fullstack вакансии976
  • AI вакансии943
  • Frontend вакансии738
  • Mobile вакансии44

По стеку

  • Go8 685
  • Java6 537
  • Node.js2 024
  • .NET1 723
  • Kotlin1 612
  • Rust1 462
  • C#710
  • PHP682
  • C++574

DevOps и инфраструктура

  • Kubernetes7 766
  • DevOps вакансии6 046
  • Linux-инфраструктура5 493
  • Terraform / IaC4 271
  • CI/CD3 241
  • Мониторинг и Observability1 790
  • SRE564
  • Кибербезопасность445

Аналитика и данные

  • Data Scientist1 120
  • Бизнес-аналитик913
  • Аналитик данных834
  • Системный аналитик150

Другие направления

  • Проджект-менеджер600
  • UI/UX дизайн143
  • Ручное тестирование14

По регионам

  • Вакансии в США43 094
  • Вакансии в Европе23 429
  • Вакансии в Канаде4 376
  • Работа в России3 903

По формату

  • Удалённые вакансии72 764
  • Релокация в США43 097
  • Гибридная работа12 388
  • Офисная работа7 092

По уровню

  • Senior вакансии41 715
  • Middle вакансии20 188
  • Junior вакансии6 560

Сейчас нанимают

Все компании
  • Wise190 вакансий
  • Rakuten189 вакансий
  • ASML166 вакансий
  • Grab137 вакансий
  • Celonis39 вакансий
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace16 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К подготовке по вакансии←К теме PandasВсе вопросы
PandasMiddleОпыт

Какие ключевые абстракции Pandas нужно понимать, чтобы не получать формально рабочие, но неверные результаты?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Ключевые абстракции Pandas: выравнивание по Index (не по позиции), семантика view/copy с SettingWithCopyWarning, неявная конвертация dtype, порядок строк в GroupBy и тихое дублирование при merge без validate.

1. Index и выравнивание по оси

В отличие от NumPy, операции между двумя Series/DataFrame выравниваются по Index, а не по позиции. Это часто приводит к неожиданным NaN.

import pandas as pd

a = pd.Series([1, 2, 3], index=[0, 1, 2])
b = pd.Series([10, 20, 30], index=[1, 2, 3])  # сдвинутый индекс

print(a + b)
# 0     NaN   ← index=0 есть только в a
# 1    12.0
# 2    22.0
# 3     NaN   ← index=3 есть только в b

Решение: a.values + b.values (NumPy-массивы без индекса) или явный reset_index.

Ключевые абстракции Pandas

Pandas строится на нескольких концептах, непонимание которых порождает формально работающий, но семантически неверный код.

2. View vs Copy — SettingWithCopyWarning

Pandas не гарантирует, возвращает ли операция view (вид на исходные данные) или copy (новый объект). Мутация view меняет оригинал; мутация copy — нет.

df = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]})

# НЕВЕРНО — может не изменить df, SettingWithCopyWarning
subset = df[df["a"] > 1]
subset["b"] = 99  # может быть copy, df не изменится

# ВЕРНО — явная копия или .loc
subset = df[df["a"] > 1].copy()
subset["b"] = 99  # безопасно

# или через .loc на оригинальном df
df.loc[df["a"] > 1, "b"] = 99

В Pandas 2.x включён Copy-on-Write (CoW) по умолчанию — поведение стало предсказуемее, но старый код может сломаться.

3. dtype и скрытые преобразования

При чтении CSV Pandas выводит dtype эвристически. NaN в целочисленной колонке конвертирует её в float64, что ломает join-ы по ключу.

df = pd.read_csv("orders.csv", dtype={"user_id": "Int64"})  # nullable integer
print(df.dtypes)
# user_id    Int64  ← сохраняет NaN без float-конвертации

4. GroupBy — split-apply-combine и порядок строк

После groupby/apply порядок строк может измениться. Если следующий шаг зависит от порядка (например, lag/shift по времени), результат будет неверным без явной сортировки.

df = pd.DataFrame({
    "user": [1, 1, 2, 2],
    "date": pd.to_datetime(["2025-01-02", "2025-01-01", "2025-01-03", "2025-01-01"]),
    "amount": [100, 200, 50, 150],
})

# НЕВЕРНО — shift без сортировки даёт lag на неверных строках
df["prev"] = df.groupby("user")["amount"].shift(1)

# ВЕРНО — сначала сортировка внутри группы
df = df.sort_values(["user", "date"])
df["prev"] = df.groupby("user")["amount"].shift(1)

5. merge — тип join-а и дублирование строк

По умолчанию pd.merge() делает inner join и не предупреждает, если один ключ встречается несколько раз — строки молча дублируются (cartesian product).

# Явная валидация: ключ уникален в правой таблице
result = pd.merge(
    orders, users,
    on="user_id",
    how="left",
    validate="many_to_one",  # выбросит MergeError при дублях
)

Подводные камни

  • Выравнивание по Index — операции между DataFrame с разными индексами порождают NaN без предупреждений
  • SettingWithCopyWarning — игнорирование этого предупреждения приводит к скрытым мутациям или их отсутствию
  • Смешение .loc (label-based) и .iloc (position-based) при нецелочисленном индексе даёт разные строки
  • apply() с lambda возвращает Series или DataFrame в зависимости от формы — shape выхода непредсказуем без явного result_type
  • inplace=True не гарантирует отсутствие копии и не даёт выигрыша по памяти в большинстве случаев
  • read_csv без explicit dtype — тихая конвертация типов, особенно опасна для ID-колонок с ведущими нулями (телефоны, коды)
  • pivot_table молча агрегирует дубли через aggfunc=mean, если не указано иное — данные теряются без ошибки

Что портит ответ

  • Знать термины Pandas, но не понимать связи между абстракциями
  • Объяснять поведение через отдельные примеры вместо причинной модели
  • Не связывать mental model с диагностикой ошибок

Что слушает интервьюер

  • Понимает ключевые абстракции Pandas
  • Может предсказывать поведение системы через mental model
  • Связывает модель с debugging и production decisions

Как вы знаете этот вопрос?

Проверить себя по теме Pandas →
←Предыдущий вопросЧто такое `pd.get_dummies()` и когда его использовать вместо `OneHotEncoder` из sklearn?Следующий вопрос→В чём разница между `apply()`, `map()` и `applymap()` (в Pandas 2.x переименован в `map()`)?

Связанные темы

Pandaspandassystems-thinkingtechnical-communicationtechnology-selectiontrade-off-analysis

Вакансии с этим навыком

  • Middle/Senior Data Analyst
  • ML-инженер
  • Senior Data Scientist
  • Data Engineer
  • Middle+ Data Scientist — GenAI & Agentic AI

Частые вопросы на собеседовании

  • Каковы типичные причины SettingWithCopyWarning и как его исправить?
  • В чём разница между merge(), join() и concat() в Pandas?
  • Как обрабатывать пропущенные значения в Pandas — isnull(), dropna(), fillna()?
  • В чём разница между .loc[] и .iloc[] для индексирования?