In this pandas drop multiple columns by index article, I will explain how to drop multiple columns by index with several DataFrame examples. You can drop columns by index by using DataFrame.drop() method and by using DataFrame.iloc[].columns
property to get the column names by index.
1. Quick Examples of Pands Drop Multiple Columns by Index
If you are in hurry, below are some quick examples of how to drop multiple columns by an index of DataFrame.
# Below are some quick examples.
# Drop columns based on column index.
df2 = df.drop(df.columns[[0, 1, 2]],axis = 1)
# Drop column of index using DataFrame.iloc[] and drop() methods.
df2 = df.drop(df.iloc[:, 1:3],axis = 1)
Now, let’s create a Pandas DataFrame with a few rows and columns and 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(df)
Yields below output.
# Output:
Courses Fee Duration
0 Spark 22000 30days
1 Spark 25000 35days
2 PySpark 23000 40days
3 JAVA 24000 45days
4 Hadoop 26000 50days
5 .Net 30000 55days
6 Python 27000 60days
7 AEM 28000 35days
8 Oracle 35000 30days
9 SQL DBA 32000 40days
10 C 20000 50days
11 WebTechnologies 15000 55days
2. Pandas Drop Multiple Columns By Index
In this section, you’ll learn how to drop multiple columns by index in pandas. 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.
Note that an index is 0 based. Use 0 to delete the first column and 1 to delete the second column and so on.
# Drop columns based on column index.
df2 = df.drop(df.columns[[1, 2]],axis = 1)
print(df2)
Yields below output.
# 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
3. Drop Columns by Index Using iloc[] and drop() Methods
If you wanted to drop columns from starting and ending index ranges, you can do so by using DataFrame.iloc[] property. This property returns all column names between specified indexes and pass these column names to drop() method.
# Drop column of index using DataFrame.iloc[] and drop() methods.
df2 = df.drop(df.iloc[:, 1:3],axis = 1)
print(df2)
Yields below output.
# 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
4. Drop Columns by 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(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
5. Complete Examples Drop Multiple 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)
# 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 multiple columns by index using, DataFrame.drop()
Method and DataFrame.iloc[]
and DataFrame.loc[]
properties with some examples.
Related Articles
- How to drop Pandas Columns from DataFrame?
- Pandas Drop Multiple Columns From DataFrame
- How to Drop Duplicate Columns in Pandas DataFrame?
- Pandas Drop First/Last N Columns From DataFrame
- How to drop the Pandas column by index?
- Drop Pandas first column from DataFrame.
- Pandas Drop Columns with NaN or None Values
- Drop the last column from the DataFrame
- Pandas Drop Rows by Index
- Pandas Drop the First Row of DataFrame
- Pandas Drop Index Column Explained