Pandas DataFrame drop()

We can drop rows or columns by using drop().
DataFrame.drop(labels=None, axis=0, index=None, columns=None,
 level=None, inplace=False, errors='raise')
This returns DataFrame without the removed index or column labels.
import pandas as pd 
my_dict={'NAME':['Ravi','Raju','Alex','Ron','King','Jack'],
         'ID':[1,2,3,4,5,6],
         'MATH':[80,40,70,70,70,30],
         'ENGLISH':[80,70,40,50,60,30]}
df = pd.DataFrame(data=my_dict)
df.drop(columns='ID')
print(df)
Output
   NAME  ID  MATH  ENGLISH
0  Ravi   1    80       80
1  Raju   2    40       70
2  Alex   3    70       40
3   Ron   4    70       50
4  King   5    70       60
5  Jack   6    30       30
We can see ID column is not deleted. Here the original DataFrame is retained. Now we will change the last lines like this.
df=df.drop(columns='ID')
print(df)
Now our output will change by removing ID column.
   NAME  MATH  ENGLISH
0  Ravi    80       80
1  Raju    40       70
2  Alex    70       40
3   Ron    70       50
4  King    70       60
5  Jack    30       30
Remove all rows and keep the columns.
df.drop(df.index,inplace=True)

labels

We can add the option lables to delete index or column lables.
df.drop(labels=[2,4])
Output
NAME	ID	MATH	ENGLISH
0	Ravi	1	80	80
1	Raju	2	40	70
3	Ron	4	70	50
5	Jack	6	30	30
Now Index 2 and 4 are removed.

labels

We will remove columns by using labels option.
df.drop(labels=['ID','MATH'],axis=1,inplace=True)
Two columns ID and MATH are removed.
	NAME	ENGLISH
0	Ravi	80
1	Raju	70
2	Alex	40
3	Ron	50
4	King	60
5	Jack	30

columns

We can input single or a list of columns to remove.
df.drop(columns=['ID','MATH'])
Output
	NAME	ENGLISH
0	Ravi	80
1	Raju	70
2	Alex	40
3	Ron	50
4	King	60
5	Jack	30

index

We can use single label or list
df.drop(index=2,columns='MATH')
Output
	NAME	ID	ENGLISH
0	Ravi	1	80
1	Raju	2	70
3	Ron	4	50
4	King	5	60
5	Jack	6	30
index =2 or row 3 is removed.
df.drop(index=2,axis=0)
Output

NAME	ID	MATH	ENGLISH
0	Ravi	1	80	80
1	Raju	2	40	70
3	Ron	4	70	50
4	King	5	70	60
5	Jack	6	30	30

errors

Default value is 'raise'. We can set it to errors='ignore'

Deleting rows

Delete row which id is given.
df.drop(df[df['ID'] == 2].index, inplace = True) # remove matching value
#df.drop(df[df['NAME'] == 'Ravi'].index, inplace = True)
We can keep some rows based on condition and remove rest of the rows, here we are not using drop() and using loc
df=df.loc[df["MATH"] >= 45 ] # Keep all rows based on condition
df=df.loc[df["ID"] == 3 ] # Keep only  row based on condition
Delete rows with multiple matching conditions. Here & ( and ) is used to match both the conditions. Here one record is deleted.
my_delete=df[(df['NAME']=='Ravi') & (df['ID']==1)].index
df.drop(my_delete,inplace=True)
Condition can be changed by using OR matching , here two records will be deleted.
my_delete=df[(df['NAME']=='Ravi') | (df['ID']==2)].index
Delete records with more than 256 length in column Linking page.
my_delete=df[df['Linking page'].str.len() >256].index
df.drop(my_delete,inplace=True)
Delete with and ( & ) combination ( two conditions to match ) . Lenth of data in Page column is less than 12 and more than 3 to be deleted.
my_delete=df[(df['Page'].str.len() <12) & (df['Page'].str.len() >3)].index

Delete specific rows

Delete 1 ,3 and 7 rows
df.drop([1,3,7],inplace=True)
Delete last two rows
df.drop(df.tail(2).index,inplace=True)
OR ( select all without last two )
df = df.iloc[:-2]
Pandas Plotting graphs Filtering of Data
Subscribe to our YouTube Channel here



plus2net.com







Python Video Tutorials
Python SQLite Video Tutorials
Python MySQL Video Tutorials
Python Tkinter Video Tutorials
We use cookies to improve your browsing experience. . Learn more
HTML MySQL PHP JavaScript ASP Photoshop Articles Contact us
©2000-2025   plus2net.com   All rights reserved worldwide Privacy Policy Disclaimer