Table of Contents
The best way to drop columns by index in Pandas is to use the drop() method. This method takes a list of the indices of the columns that you want to drop, and it will modify the DataFrame by permanently deleting them. Additionally, the inplace parameter can be set to True if you want the changes to be made in the same DataFrame object, otherwise a new DataFrame object will be returned.
You can use the following syntax to drop one column from a pandas DataFrame by index number:
#drop first column from DataFrame df.drop(df.columns[0], axis=1, inplace=True)
And you can use the following syntax to drop multiple columns from a pandas DataFrame by index numbers:
#drop first, second, and fourth column from DataFrame cols = [0, 1, 3] df.drop(df.columns[cols], axis=1, inplace=True)
If your DataFrame has duplicate column names, you can use the following syntax to drop a column by index number:
#define list of columns cols = [x for x in range(df.shape[1])] #drop second column cols.remove(1) #view resulting DataFrame df.iloc[:, cols]
The following examples show how to drop columns by index in practice.
Example 1: Drop One Column by Index
The following code shows how to drop the first column in a pandas DataFrame:
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['Mavs', 'Lakers', 'Spurs', 'Cavs'], 'first': ['Dirk', 'Kobe', 'Tim', 'Lebron'], 'last': ['Nowitzki', 'Bryant', 'Duncan', 'James'], 'points': [26, 31, 22, 29]}) #drop first column from DataFrame df.drop(df.columns[0], axis=1, inplace=True) #view resulting dataFrame df first last points 0 Dirk Nowitzki 26 1 Kobe Bryant 31 2 Tim Duncan 22 3 Lebron James 29
Example 2: Drop Multiple Columns by Index
The following code shows how to drop multiple columns in a pandas DataFrame by index:
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['Mavs', 'Lakers', 'Spurs', 'Cavs'], 'first': ['Dirk', 'Kobe', 'Tim', 'Lebron'], 'last': ['Nowitzki', 'Bryant', 'Duncan', 'James'], 'points': [26, 31, 22, 29]}) #drop first, second and fourth columns from DataFrame cols = [0, 1, 3] df.drop(df.columns[cols], axis=1, inplace=True) #view resulting dataFrame df last 0 Nowitzki 1 Bryant 2 Duncan 3 James
Example 3: Drop One Column by Index with Duplicates
The following code shows how to drop a column by index number in a pandas DataFrame when duplicate column names exist:
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['Mavs', 'Lakers', 'Spurs', 'Cavs'],
'last': ['Nowitzki', 'Bryant', 'Duncan', 'James'],
'last': ['Nowitzki', 'Bryant', 'Duncan', 'James'],
'points': [26, 31, 22, 29]},
columns=['team', 'last', 'last', 'points'])
#define list of columns range
cols = [x for x in range(df.shape[1])]
#remove second column in DataFrame
cols.remove(1)
#view resulting DataFrame
df.iloc[:, cols]
team last points
0 Mavs Nowitzki 26
1 Lakers Bryant 31
2 Spurs Duncan 22
3 Cavs James 29