In this pandas drop columns by index article, I will explain how to drop columns by index with several DataFrame examples. You can drop a column by index in pandas by using DataFrame.drop() method and by using DataFrame.iloc[].columns
property to get the column names by index.
drop()
method is used to remove multiple columns or rows from DataFrame.- Use
axis
param to specify what axis you would like to remove. By default axis = 0 meaning to remove rows. Use axis=1 or columns param to remove columns. - Use inplace=True to remove row/column in place meaning on existing DataFrame without creating a copy.
1. Quick Examples of Dropping Columns by Index in DataFrame
If you are in a hurry, below are some quick examples of dropping column(s) by an index of DataFrame.
# Below are some quick examples.
# Example 1: Using DataFrame.drop() method.
df2=df.drop(df.columns[1], axis=1)
# Example 2: Drop first column with param inplace = True
df.drop(df.columns[1], axis=1, inplace = True)
# Example 3: Drop columns based on column index.
df2 = df.drop(df.columns[[0, 1, 2]],axis = 1)
# Example 4: Drop column of index using DataFrame.iloc[] and drop() methods.
df2 = df.drop(df.iloc[:, 1:3],axis = 1)
# Example 5: Drop columns by labels using DataFrame.loc[] and drop() methods.
df2 = df.drop(df.loc[:, 'Courses':'Fee'].columns,axis = 1)
Now, let’s create a Pandas DataFrame with a few rows and columns use this, to execute some examples, and validate results. Our DataFrame contains column names Courses
, Fee
, and Discount
.
# Create a Pandas DataFrame.
import pandas as pd
import numpy as np
technologies= {
'Courses':["Spark","Spark","PySpark","JAVA","Hadoop",".Net","Python","AEM","Oracle","SQL DBA","C","WebTechnologies"],
'Fee' :[22000,25000,23000,24000,26000,30000,27000,28000,35000,32000,20000,15000],
'Duration':['30days','35days','40days','45days','50days','55days','60days','35days','30days','40days','50days','55days']
}
df = pd.DataFrame(technologies)
print("Create DataFrame:\n", df)
Yields below output.

2. Using DataFrame.drop() Column by Index
you can use DataFrame.drop() function to remove the column by index. The drop()
function is used to drop specified labels from rows or columns. Remove rows or columns by specifying label names and corresponding axes, or by specifying the direct index of columns. When using a multi-index, labels on different levels can be removed by specifying the level.
Note that an index is 0-based. Use 0 to delete the first column and 1 to delete the second column and so on.
# Using DataFrame.drop() method.
df2=df.drop(df.columns[1], axis=1)
print("After dropping the first column:\n", df2)
Yields below output. This deletes the second column as the index starts from 0.

If you want to update the existing DataFrame instead of creating a new DataFrame after dropping it’s column you can use the inplace=True
parameter of the drop() function. This function will return the original DataFrame with the remaining columns.
# Drop first column with param inplace = True
df.drop(df.columns[1], axis=1, inplace = True)
print("After dropping the first column:\n", df)
Yields below output.
# Output:
After dropping the first column:
Courses Duration
0 Spark 30days
1 Spark 35days
2 PySpark 40days
3 JAVA 45days
4 Hadoop 50days
5 .Net 55days
6 Python 60days
7 AEM 35days
8 Oracle 30days
9 SQL DBA 40days
10 C 50days
11 WebTechnologies 55days
3. Drop Multiple Columns By Index
In this section, you’ll learn how to drop multiple columns by index. You can use df.columns[[index1, index2, indexn]]
to identify the list of column names in that index
position and pass that list to the drop method.
# Drop multiple columns based on column index.
df2 = df.drop(df.columns[[1, 2]],axis = 1)
print("After dropping multiple columns:\n", df2)
Yields below output.
# Output:
After dropping multiple columns:
Courses
0 Spark
1 Spark
2 PySpark
3 JAVA
4 Hadoop
5 .Net
6 Python
7 AEM
8 Oracle
9 SQL DBA
10 C
11 WebTechnologies
4. Drop Columns Using DataFrame.iloc[] and drop() Methods
If you want to drop columns from starting and ending index ranges, you can do so by using the iloc[] property. This property returns all column names between specified indexes and axes.
these column names to the drop() method.
# Drop column of index using DataFrame.iloc[] and drop() methods.
df2 = df.drop(df.iloc[:, 1:3],axis = 1)
print("After dropping multiple columns:\n", df2)
Yields below output.
After dropping multiple columns:
# Output:
Courses
0 Spark
1 Spark
2 PySpark
3 JAVA
4 Hadoop
5 .Net
6 Python
7 AEM
8 Oracle
9 SQL DBA
10 C
11 WebTechnologies
5. Drop Columns of Index Using DataFrame.loc[] and drop() Methods
Similarly, you can drop columns by the range of labels using DataFrame.loc[]
and DataFrame.drop(
) methods. Here the loc[]
property is used to access a group of rows and columns by label(s) or a boolean array.
# Drop columns of index using DataFrame.loc[] and drop() methods.
df2 = df.drop(df.loc[:, 'Courses':'Fee'].columns,axis = 1)
print("After dropping multiple columns:\n", df2)
Yields below output.
# Output:
Duration
0 30days
1 35days
2 40days
3 45days
4 50days
5 55days
6 60days
7 35days
8 30days
9 40days
10 50days
11 55days
6. Complete Examples of Drop Columns By Index
# Create a Pandas DataFrame.
import pandas as pd
import numpy as np
technologies= {
'Courses':["Spark","Spark","PySpark","JAVA","Hadoop",".Net","Python","AEM","Oracle","SQL DBA","C","WebTechnologies"],
'Fee' :[22000,25000,23000,24000,26000,30000,27000,28000,35000,32000,20000,15000],
'Duration':['30days','35days','40days','45days','50days','55days','60days','35days','30days','40days','50days','55days']
}
df = pd.DataFrame(technologies)
print(df)
# Using DataFrame.drop() method.
df2=df.drop(df.columns[1], axis=1)
print(df2)
# Drop Multiple Columns by labels.
df2 = df.drop(['Courses', 'Duration'],axis = 1)
print(df2)
# Drop columns based on column index.
df2 = df.drop(df.columns[[0, 1, 2]],axis = 1)
print(df2)
# Drop column by index using DataFrame.iloc[] and drop() methods.
df2 = df.drop(df.iloc[:, 1:3],axis = 1)
print(df2)
# Drop columns by labels using DataFrame.loc[] and drop() methods.
df2 = df.drop(df.loc[:, 'Courses':'Fee'].columns,axis = 1)
print(df2)
Conclusion
In this article, You have learned how to drop columns by index using DataFrame.drop()
Method and DataFrame.iloc[]
and DataFrame.loc[]
properties with some examples.
Related Articles
- Change the Order of Pandas DataFrame Columns
- How to Change the Position of a Column in Pandas
- Pandas Shuffle DataFrame Rows Examples
- Convert String to Float in Pandas DataFrame
- Convert Float to Integer in Pandas DataFrame
- Pandas Drop Rows by Index
- Pandas Drop the First Row of the DataFrame
- Pandas Drop Index Column Explained