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)
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.
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
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
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
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
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
Author & Instructor at plus2net
I write and maintain practical tutorials on Python, PHP, SQL, JavaScript, HTML, jQuery, and web development at plus2net. The tutorials focus on clear explanations, working examples, and code that readers can test and adapt while learning.