March 8, 2022

Добавление условного столбца в Pandas

Рассмотрим способ создания столбца, зависящего от значений в другой колонке, средствами Pandas. В демонстрационных целях будем работать с таблицей следующего вида (условно данные о торговых центрах, магазинах в них и общем доходе):

Пусть мы хотим добавить новый столбец (size) с категорией размера торгового центра в зависимости от дохода (revenue):

  • Если доход < 12000, то значение "little";
  • Если доход >=12000 и <=25000, то - "average";
  • Если доход > 25000, то "big".

Такая логика в Pandas задается с помощью индексатора loc, который может одновременно отобрать строки по логическим значениям и выбрать заданные столбцы:

df.loc[df['revenue']<12000,'size'] = "little"
df.loc[(df['revenue']>=12000)&(df['revenue']<=25000),'size'] = "average"
df.loc[df['revenue']>25000,'size'] = "big"
df

Обратите внимание, что null значения нужно обрабатывать дополнительно. Как это делать, расскажу в другой статье.