Delete column/row from a Pandas dataframe using .drop() method

While working with data in Pandas, you might want to drop a column(s) or some rows from a pandas dataframe. One typically deletes columns/rows, if they are not needed for further analysis. There are a couple of ways you can achieve this, but the best way to do this in Pandas is to use .drop() method.
The .drop() function allows you to delete/drop/remove one or more columns from a dataframe. It also can be used to delete rows from Pandas dataframe.
DataFrame. drop(self, labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors=’raise’)
As you can see above, .drop() function has multiple parameters. So to use the function correctly, we need to understand what these parameters do.
Parameters:
Self — Specifies what to drop.
Next come the optional parameters:
Labels — Index or column labels to drop.
Axis — Whether to drop labels from the index (0 or ‘index’) or columns (1 or ‘columns’).
Index — Alternative to specifying axis.
Columns — Alternative to specifying axis.
Level — For MultiIndex, the level from which the labels will be removed.
Inplace — If True, drops specified from the DataFrame. If False, shows how DataFrame would look like without specified data.
Errors — If ‘ignore’, suppress error and only existing labels are dropped.
Optional parametrers have the following default behaviour:
labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors=»raise»
.drop() examples for dropping a column/columns
Let us see some examples of dropping or removing columns from pandas dataframe.
Create dataframe
Create a simple dataframe with a dictionary of lists, and column names: name, year, orders, town.

Example #1 : Delete a single column using just the column name
Pandas provides data analysts with a way to delete and filter dataframe using .drop() method. Columns can be removed permanently using column name using this method df.drop([‘your_column_name’], axis=1, inplace=True) .
To drop a single column from pandas dataframe, we need to provide the name of the column to be removed as a list as an argument to drop function.
Remember parameter self? Pandas .drop() function can drop column or row. This behaviour is controlled by the axis parameter. To specify that we want to drop a column, we need to provide axis=1 as an argument to the drop function. If you don’t provide axis=1 then the .drop() function will default to axis=0 . This means that the function will remove rows and not columns.


Don’t get caught by the default behaviour of the inplace parameter. After you run df.drop([‘year’], axis=1) the actual dataframe remains unchanged. So if you call you dataframe again, it will still display a column that was specified as self in .drop() function. To remove a column permanently from your dataframe you will need to provide one more parameter inplace=True .
Your command should look like the following:
df.drop([‘your_column_name’], axis=1, inplace=True) or
df.drop(columns=[‘your_column_name’], axis=1, inplace=True)
Its better to add labels when specifying parameters. Doing so will make reading your code easier.

Example #2 : Remove a column with column index
It is also possible to drop a column using its index rather than its name. IMHO it is harder to read code when the index is used.
df.drop(df.columns[[index_column]], axis = 1, inplace = True)
In our example, we are deleting column year, which has index one. It is the second column in the dataframe. Don’t forget that python indexing starts from zero.

Example #3 : Delete multiple columns using the column name
Pandas .drop() function can also be used to remove multiple columns. To do so, one simply needs to provide names of columns that should be deleted. Here is an example of dropping two columns from our simple dataframe.
Your command should look like:
df.drop([‘your_column1’, ‘your_column2’], axis=1, inplace = True) or
df.drop(columns=[‘your_column1’, ‘your_column2’], axis=1, inplace = True)
Dataframe before .drop() is used:

Dataframe after .drop() is used:

Example #4 : Delete multiple columns using the column index
You can also delete multiple columns with column index using the command:
df.drop(df.columns[[index_column1, index_column2]], axis=1, inplace = True)

.drop() examples for dropping a row(s)
In Pandas, it is also easy to drop rows of a dataframe. We can use the same .drop() function to delete rows.
To drop one or more rows from a Pandas dataframe, we need to specify the row index(s) that need to be dropped and axis=0 argument. Here the axis=0 argument specifies that we want to drop rows instead of dropping columns. Remember that this is the default parameter for the .drop() function and so it is optional.
Example #1 : Delete row with its index
To delete a specific row from a dataframe with its index use the following command:
df.drop([row_index], axis=0, inplace = True) or
df.drop([row_index], inplace = True)

Example #2 : Delete row with its custom index
You can also set custom indexes on your dataframe. In this case, to drop the specified row, you will need to use its custom Intex.
Use one of the following commands:
df.drop(index=’custom_index’, axis=0, inplace = True) or
df.drop(‘custom_index’, axis=0, inplace = True) or
df.drop(‘custom_index’, inplace = True) or
df.drop([‘custom_index’], inplace = True)

In the above dataframe towns serve as indexes.
Let’s delete a row with custom index Glasgow.

Conclusion
Now you should have a better understanding of what the .drop() function does and be able to use it in order to drop/delete/remove rows/columns from your dataframe. There are many other ways of dropping rows/columns from a dataframe, but they are out of the scope of this article.
Работа с Python Pandas DataFrame
Python Pandas DataFrame — это широко используемая структура данных, которая работает с двумерным массивом с маркированными осями (строками и столбцами). DataFrame определяется как стандартный способ хранения данных с двумя разными индексами, т. е. индексом строки и индексом столбца. Он состоит из следующих свойств:
- Столбцы могут быть разнородными типами, такими как int, bool и т. д.
- Его можно рассматривать как словарь структуры Series, в котором индексируются как строки, так и столбцы. Он обозначается как «столбцы» в случае столбцов и «индекс» в случае строк.
Параметры и описание
data: состоит из различных форм, таких как ndarray, ряд, карта, константы, списки, массив.
index: индекс np.arrange(n) по умолчанию используется для меток строк, если индекс не передается.
columns: синтаксис по умолчанию — np.arrange(n) для меток столбцов. Он показывает только true, если индекс не передан.
dtype: относится к типу данных каждого столбца.
copy(): используется для копирования данных.

Создание фрейма данных
Мы можем создать DataFrame следующими способами:
- dict
- Lists
- Numpy ndarrrays
- Series
- Создание пустого DataFrame.
В приведенном ниже коде показано, как создать пустой DataFrame в Pandas:
Объяснение: В приведенном выше коде мы импортировали библиотеку pandas с псевдонимом pd, а затем определили переменную с именем df, которая состоит из пустого фрейма данных. Наконец, мы напечатали его, передав df в print.
- Создание DataFrame, используя список.
Мы можем легко создать DataFrame в Pandas, используя list.
Объяснение: В приведенном выше коде мы определили переменную с именем “x”, состоящую из строковых значений. Конструктор DataFrame вызывается для списка для печати значений.
- DataFrame из Dict ndarrays/Lists.
Объяснение: В приведенном выше коде мы определили словарь с именем «info», который состоит из списка ID и отдела. Для печати значений мы должны вызвать информационный словарь через переменную с именем df и передать ее в качестве аргумента в print().
- Создание DataFrame из Dict of Series.
Объяснение: В приведенном выше коде словарь с именем «info» состоит из двух серий с соответствующим индексом. Для печати значений мы должны вызвать информационный словарь через переменную с именем d1 и передать ее в качестве аргумента в print().
Выбор столбца
Мы можем выбрать любой столбец из DataFrame. Вот код, который демонстрирует, как выбрать столбец из DataFrame.
Объяснение: В приведенном выше коде словарь с именем «info» состоит из двух серий с соответствующим индексом. Позже мы вызвали информационный словарь через переменную d1 и выбрали «один» ряд из DataFrame, передав его в функцию print().
Добавление столбца
Мы также можем добавить любой новый столбец в существующий DataFrame. В приведенном ниже коде показано, как добавить любой новый столбец в существующий DataFrame:
Объяснение: В приведенном выше коде словарь с именем f состоит из двух серий с соответствующим индексом. Позже мы вызвали информационный словарь через переменную df.
Чтобы добавить новый столбец в существующий объект DataFrame, мы передали новую серию, содержащую некоторые значения, относящиеся к его индексу, и распечатали результат с помощью функции print().
Мы можем добавить новые столбцы, используя существующий DataFrame. Добавлен столбец «четыре», в котором хранится результат сложения двух столбцов, т. е. первого и третьего.
Удаление столбца
Мы также можем удалить любой столбец из существующего DataFrame. Этот код помогает продемонстрировать, как можно удалить столбец из существующего фрейма данных:
В приведенном выше коде переменная df отвечает за вызов информационного словаря и печать всех значений словаря. Мы можем использовать функцию удаления или всплывающего окна, чтобы удалить столбцы из DataFrame.
В первом случае мы использовали функцию удаления для удаления столбца «один» из фрейма данных, тогда как во втором случае мы использовали функцию всплывающего окна для удаления столбца «два» из фрейма данных.
Выбор строки, добавление и удаление
Мы можем легко выбрать, добавить или удалить любую строку в любое время. Прежде всего, мы разберемся с выбором строки.
Выбор строки
Давайте посмотрим, как мы можем выбрать строку, используя следующие способы.
- Выбор по метке.
Мы можем выбрать любую строку, передав метку строки функции loc.
Объяснение: В приведенном выше коде словарь с именем info состоит из двух серий с соответствующим индексом.
Для выбора строки мы передали метку строки функции loc.
- Выбор по целочисленному местоположению.
Строки также можно выбрать, передав целочисленное местоположение функции iloc.
Объяснение: В приведенном выше коде мы определили словарь с именем info, который состоит из двух серий с соответствующим индексом.
Для выбора строки мы передали целочисленное местоположение функции iloc.
- Разделение ряда.
Это еще один способ выбрать несколько строк с помощью оператора ‘:’.
Объяснение: В приведенном выше коде мы определили диапазон от 2:5 для выбора строки, а затем вывели его значения на консоль.
Добавление строк
Мы можем легко добавлять новые строки в DataFrame, используя функцию добавления. Он добавляет новые строки в конце.
Объяснение: В приведенном выше коде мы определили два отдельных списка, содержащих несколько строк и столбцов. Эти столбцы были добавлены с помощью функции добавления, после чего результат отображается на консоли.
Удаление строк
Мы можем удалить любые строки из DataFrame, используя метку индекса. Если в этом случае метка дублируется, несколько строк будут удалены.
Объяснение: В приведенном выше коде мы определили два отдельных списка, содержащих несколько строк и столбцов.
Здесь мы определили метку индекса строки, которую необходимо удалить из списка.
Python | Удалить строки / столбцы из DataFrame с помощью Pandas.drop ()
Python — отличный язык для анализа данных, в первую очередь благодаря фантастической экосистеме пакетов Python, ориентированных на данные. Pandas является одним из таких пакетов и значительно упрощает импорт и анализ данных.
Панды предоставляют аналитикам данных способ удалять и фильтровать фрейм данных с помощью .drop() . С помощью этого метода строки или столбцы могут быть удалены с помощью метки индекса или имени столбца.
Syntax:
DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors=’raise’)Parameters:
labels: String or list of strings referring row or column name.
axis: int or string value, 0 ‘index’ for Rows and 1 ‘columns’ for Columns.
index or columns: Single label or list. index or columns are an alternative to axis and cannot be used together.
level: Used to specify level in case data frame is having multiple level index.
inplace: Makes changes in original Data Frame if True.
errors: Ignores error if any value from the list doesn’t exists and drops rest of the values when errors = ‘ignore’Return type: Dataframe with dropped values
Чтобы загрузить CSV, использованный в коде, нажмите здесь.
Пример № 1: удаление строк по метке индекса
В его коде передается список меток индекса, а строки, соответствующие этим меткам, удаляются с помощью метода .drop ().
# импорт модуля панд
import pandas as pd
# создание фрейма данных из CSV-файла
data = pd.read_csv( «nba.csv» , index_col = «Name» )
# отбрасывание пропущенных значений
data.drop([ «Avery Bradley» , «John Holland» , «R.J. Hunter» ,
«R.J. Hunter» ], inplace = True )
Выход:
Как показано на выходных изображениях, новый вывод не имеет переданных значений. Эти значения были отброшены, и изменения были внесены в исходный фрейм данных, поскольку inplace был True.
Кадр данных перед сбросом значений

Фрейм данных после удаления значений

Пример № 2: удаление столбцов с именем столбца
В его коде пропущенные столбцы удаляются с использованием имен столбцов. Параметр axis сохраняется 1, поскольку 1 относится к столбцам.
# импорт модуля панд
import pandas as pd
# создание фрейма данных из CSV-файла
data = pd.read_csv( «nba.csv» , index_col = «Name» )
# отбрасывание пропущенных столбцов
data.drop([ «Team» , «Weight» ], axis = 1 , inplace = True )
Выход:
Как показано на выходных изображениях, новый вывод не имеет пропущенных столбцов. Эти значения были отброшены, поскольку ось была установлена равной 1, и изменения были сделаны в исходном фрейме данных, поскольку inplace было True.