TGViewer
OnlyAnalyst by Алексей Гаврилов OnlyAnalyst by Алексей Гаврилов @onlyanalystgroup · 2.45K subscribers
Post #116 1.3K
📊 Всем привет! Сегодня разберем важную тему для решения рабочих задач: создание колонок по условию в Pandas

💂‍♀️ В основном создание колонок по условию требуется для изменения гранулярности данных, например, вместо того, чтобы отдельно рассматривать пользователей по конкретному возрасту, удобнее сформировать из них смысловые группу: молодые (18-30), средние (31-59) и пожилые(60+).

🏕️ Метод 1: iterrows() построчно обрабатывает в Data Frame записи и применяет условную логику для создания нового столбца:

for index, row in df.iterrows():
if condition:
df.at[index, 'new_column'] = value
else:
df.at[index, 'new_column'] = other_value


👩‍🎤
Метод 2: apply() в pandas позволяет нам применить функцию по осям (строки, колонки) к Data Frame:

def conditional_logic(row):
if condition:
return value
else:
return other_value

df['new_column'] = df.apply(conditional_logic, axis=1)


🕵️‍♀️ Метод 3: np.where() обеспечивает векторизованный подход к созданию условного столбца. Мы можем указать условие и присвоить значения на его основе:

df['new_column']=np.where(condition, value, other_value)

👍
Метод 4: np.select() позволяет нам создать новый столбец на основе нескольких условий:

conditions = [condition1, condition2, condition3]
choices = [value1, value2, value3]
df['new_column'] = np.select(conditions, choices, default=other_value)

🏎️ Давно мы не устраивали забеги на скорость, поэтому создадим DataFrame от 100 до 10 000 записей с возрастами от 18 до 80.

🏁 Результаты впечатляющие: iterrows очевидно занимает последнее место, самый популярный метод apply быстрее примерно в 7 раз при 10 000 строк. В упорной борьбе побеждает np.where, который в 263 раза быстрее, чем iterrows, в 35 раз быстрее apply и всего лишь в 1.3, чем np.select.

🔬 В который раз убеждаемся, что numpy - лидирующая библиотека, когда необходимо добиться максимальной скорости.

✒️ Какие еще применения условного создания колонок Вы знаете? Какой метод используете?

😀 Подписаться

#pandas #numpy #python
  • 🔥 17
  • 👍 7
  • ❤ 4
More from @onlyanalystgroup
  1. Oct 1, 2026Что, если заменить аналитиков нейросетью? Да ничего хорошего: результаты анализа получаютс…
  2. Sep 24, 2026Post #492
  3. Aug 31, 2026Хорошие новости: все ребята с прошлого потока нашли работу. А значит, можно открывать осен…
  4. Aug 31, 2026OnlyAnalyst by Алексей Гаврилов pinned a photo
  5. Aug 19, 2026Бесплатный ии-агент, который мы заслужили Конечно же тут работает правило, что если что-то…
  6. Aug 10, 2026Новые времена требуют новых решений! Я поддался хайпу и полностью отказался от джунов и да…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →