Лайфхак: Как переставить столбец Pandas в середину датафрейма? ?

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


На прошлой неделе в рамках нашего бесплатного курса по Pandas мы проводили закрытый мастер-класс, где показали интересный прием по перестановке столбцов, который очень зашел ребятам. А сегодня делимся с вами!

Представьте, что у вас есть датафрейм df и вы создали новый столбец:

df['new_col'] = …

По умолчанию этот столбец добавляется в самый конец датафрейма. А вы хотите, чтобы он встал на 3 место. Можно было бы пересоздать его с помощью insert, однако, давайте рассмотрим вариант, как поставить уже существующий столбец на 3 место.

Классический вариант - поменять порядок названий столбцов местами и переиндексировать исходный датафрейм. Например:

col_names = ['col1', 'col2', 'new_col', 'col3', 'col4', …]

df = df[col_names]

Однако, если столбцов много, то делать это крайне неудобно. Поэтому мы предложили ребятам интересный вариант: одновременно переместить столбец и удалить лишний с помощью комбинации insert + pop.

Код выглядит так:

df.insert(2, 'Новый столбец', df.pop('new_col'))

Если после этого посмотреть на переменную df, то столбец 'new_col' переедет на 3 место и поменяет название на 'Новый столбец'.

Эта конструкция работает очень просто:

1. Метод pop удаляет столбец 'new_col' из исходного датафрейма и записывает его в память

2. Метод insert вставляет на 2 позицию (т.к. индексация с 0 - получается, на 3 место) столбец из памяти и дает ему имя 'Новый столбец'

Очень изящная и полезная конструкция - согласны? ?

Заключение

Напоминаем, что у нас открыта предзапись на январский поток Симулятора «Аналитик данных».

По ранней предзаписи вы получите самые выгодные условия - дополнительную скидку, закрытый мастер-класс перед началом потока и другие бонусы.

Просто заполните форму предзаписи и мы с вами свяжемся ? https://simulative.ru/pre-order?utm_source=vk&utm_medium=itresume&utm_campaign=15-01


Источник: simulative.ru

Комментарии: