How to Drop Columns from Pandas DataFrame

Here are two approaches to drop columns from Pandas DataFrame

(1) Drop a single column from the DataFrame:

df = df.drop('column name',axis=1)

(2) Drop multiple columns from the DataFrame:

df = df.drop(['column 1','column 2','column 3',...],axis=1)

In the next section, you’ll see how to apply the above two approaches using a simple example.

The Example

To start with a simple example, let’s create a DataFrame with 5 columns about boxes:

import pandas as pd

boxes = {'Color': ['Blue','Blue','Green','Green','Green','Red','Red','Red'],
         'Shape': ['Square','Square','Square','Rectangle','Rectangle','Rectangle','Square','Rectangle'],
        'Length': [15,25,25,15,15,15,20,25],
         'Width': [8,5,5,4,8,8,5,4],
        'Height': [30,35,35,40,30,35,40,40]
        }

df = pd.DataFrame(boxes, columns = ['Color','Shape','Length','Width','Height'])

print (df)

Run the code in Python, and you’ll get the following DataFrame:

   Color      Shape  Length  Width  Height
0   Blue     Square      15      8      30
1   Blue     Square      25      5      35
2  Green     Square      25      5      35
3  Green  Rectangle      15      4      40
4  Green  Rectangle      15      8      30
5    Red  Rectangle      15      8      35
6    Red     Square      20      5      40
7    Red  Rectangle      25      4      40

In the sections below, you’ll observe how to drop:

  • A single column from the DataFrame
  • Multiple columns from the DataFrame

Drop a Single Column from Pandas DataFrame

Here is the approach that you can use to drop a single column from the DataFrame:

df = df.drop('column name',axis=1)

For example, let’s drop the ‘Shape‘ column. To do that, simply add the following syntax:

df = df.drop('Shape',axis=1)

So the complete Python code to drop the ‘Shape’ column is:

import pandas as pd

boxes = {'Color': ['Blue','Blue','Green','Green','Green','Red','Red','Red'],
         'Shape': ['Square','Square','Square','Rectangle','Rectangle','Rectangle','Square','Rectangle'],
        'Length': [15,25,25,15,15,15,20,25],
         'Width': [8,5,5,4,8,8,5,4],
        'Height': [30,35,35,40,30,35,40,40]
        }

df = pd.DataFrame(boxes, columns = ['Color','Shape','Length','Width','Height'])

df = df.drop('Shape',axis=1)

print (df)

As you can see, the ‘Shape’ column no longer exists in the DataFrame:

   Color  Length  Width  Height
0   Blue      15      8      30
1   Blue      25      5      35
2  Green      25      5      35
3  Green      15      4      40
4  Green      15      8      30
5    Red      15      8      35
6    Red      20      5      40
7    Red      25      4      40

Drop Multiple Columns from Pandas DataFrame

You can use this template in order to drop multiple columns from your DataFrame:

df = df.drop(['column 1','column 2','column 3',...],axis=1)

For instance, let’s drop the Shape, Length and Width columns by adding this syntax:

df = df.drop(['Shape','Length','Width'],axis=1)

So the full Python code to drop the 3 columns is:

import pandas as pd

boxes = {'Color': ['Blue','Blue','Green','Green','Green','Red','Red','Red'],
         'Shape': ['Square','Square','Square','Rectangle','Rectangle','Rectangle','Square','Rectangle'],
        'Length': [15,25,25,15,15,15,20,25],
         'Width': [8,5,5,4,8,8,5,4],
        'Height': [30,35,35,40,30,35,40,40]
        }

df = pd.DataFrame(boxes, columns = ['Color','Shape','Length','Width','Height'])

df = df.drop(['Shape','Length','Width'],axis=1)

print (df)

You’ll now see that the Shape, Length and Width columns are no longer present in the DataFrame:

   Color  Height
0   Blue      30
1   Blue      35
2  Green      35
3  Green      40
4  Green      30
5    Red      35
6    Red      40
7    Red      40

You can visit the Pandas Documentation to learn more about df.drop.