При работе с данными в Pandas, часто можно столкнуться с ситуацией, когда часть столбцов в Dataframe не содержат нужной нам информации и их требуется удалить, в этой статье мы рассмотрим несколько способов, как это можно сделать.
Сначала подготовим небольшой Dataframe, на основании которого будет делать все манипуляции.
import pandas as pdОсновным методом, который нам предлагает Pandas для удаления столбцов, является метод drop.
city_data = {
'Город':['Москва', 'Казань', 'Владивосток', 'Санкт-Петербург', 'Калининград'],
'Дата основания':['1147', '1005', '1860', '1703', '1255'],
'Площадь':['2511', '516', '331', '1439', '223'],
'Население':['11,9', '1,2', '0,6', '4,9', '0,4'],
'Погода':['8', '8', '17', '9', '12'] }
city_df = pd.DataFrame(city_data)
city_df
Синтаксис у метода согласно документации следующий:
drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise'), где:
- labels – номера или названия столбцов для удаления
- axis – значение 0, если вы хотите удалить строки, либо 1, если планируете удалять столбцы
- index – определяет, какие строки надо удалить
- columns – определяет, какие столбцы надо удалить
- inplace – изменяет оригинальный Dataframe, если параметр равен True
- errors – игнорируются ошибки, если параметр задан как ignore
Способ 1. Удаление столбца по его имени в Pandas
Укажите в методе drop название того столбца, что вы хотите удалить, а параметр axis сделайте равным 1:
city_df.drop(columns = ['Население'],axis = 1)Также мы можем удалить несколько столбцов по названию, для этого перечислите их через запятую внутри квадратных скобок:
city_df.drop(columns = ['Население', 'Погода'], axis = 1)
Обратите внимание, что синтаксис выше не изменяет исходный Dataframe, если вы хотите это сделать, то добавьте параметр inplace=True
city_df.drop(columns = ['Население'],axis = 1, inplace=True)
Способ 2. Удаление столбца по его порядковому номеру в Pandas
Мы можем удалить столбец, указывая не его имя, а его порядковый номер. Обратите внимание, что нумерация столбцов идет в Pandas с 0. К примеру мы хотим убрать столбец «Площадь», его порядковый номер – 2
city_df.drop(city_df.columns[[2]], axis = 1)Этим же методом мы можем удалить несколько столбцов из Pandas, указав их через запятую. Уберем столбцы Площадь и Погода:
city_df.drop(city_df.columns[[2,3]], axis = 1)
Спасибо за внимание. В качестве бонуса прикладываю ноутбук к данной статье.
P.S. Рекомендую еще ознакомиться с нашей статьей «Как из Pandas удалить строку?».
0 comments:
Отправить комментарий
Спасибо за комментарий.