Короткий ответ
Единственного правильного решения нет: при ограниченном времени стоит в первую очередь проверять корректность результата (дедупликация, типы merge, обработка пропусков) и только затем — стиль и производительность, так как ошибка в логике дороже неидиоматичного, но рабочего кода.
Как это работает подробнее
типичные анти-паттерны у джуниоров включают merge без проверки уникальности ключа, использование iterrows там, где можно векторизовать, цепочечную индексацию с риском SettingWithCopyWarning, фильтрацию без скобок вокруг условий, и заполнение пропусков без понимания, почему они возникли; при ограниченном времени ревью стоит выстраивать приоритет по цене ошибки — сначала то, что может незаметно исказить итоговые цифры, потом то, что влияет только на скорость или читаемость.
Пример кода
import pandas as pd
# пример кода джуниора с анти-паттерном
df = pd.DataFrame({'id': [1, 2], 'country': ['RU', 'US']})
users = pd.DataFrame({'id': [1, 1, 2], 'name': ['a', 'b', 'c']})
result = df.merge(users, on='id') # нет проверки уникальности ключа в users
print(len(df), len(result))Что использовать на практике
- На практике. полезно сформировать короткий чек-лист (проверка числа строк до/после merge, проверка дубликатов по ключу, явный na= в str-методах, комментарий к причине заполнения пропусков) и применять его систематически, вместо того чтобы ревьюить "по ощущениям"; менторский фидбек эффективнее, если объясняет "почему" это риск, а не просто указывает "так не делай".
- Проверка. len(result) окажется больше len(df) из-за дубликата id=1 в users — это именно тот тип ошибки, который ментору стоит поймать в первую очередь и предложить добавить validate или явную проверку количества строк после merge.
Подводные камни
- Частые ошибки. фокусируются на стиле (отступы, имена переменных) и пропускают содержательную ошибку в логике merge или агрегации, которая реально исказит отчёт; дают слишком много замечаний сразу по всем возможным улучшениям, из-за чего джуниор не может выделить, что действительно критично исправить сейчас, а что можно отложить.