Let’s understand inplace with below code block where it returns None df3
df3=df1.set_index('account_no',inplace=True, drop=False)
#df3.set_index('account_no',inplace=False, drop=True)
print("Index value of DF3 : \n", df3)
#df3.set_index('account_no',inplace=False, drop=True)
print("Index value of DF3 : \n", df3)
Set_index: set_index method of dataframe is used to set the index of
dataframe using existing column or array.
Syntax: dataframe.set_index(key,append=False, inplace =False,drop=True)
Let play with the datasource of
Let’s understand two important parameter inplace and drop.
When inplace is set to “True” it tells
change need to be done in original dataframe and nothing gets returned as
object
Whereas when inplace is set to “False” it changes in the copy of
dataframe and returned as object without affecting original dataframe.
Lets check with example
#inplace is set to True
df3=df1.set_index('account_no',inplace=True, drop=False)
#df3.set_index('account_no',inplace=False, drop=True)
print("DF3 with inplace set to True : \n", df3)
print("\nDF1 Data : \n", df1)
df3=df1.set_index('account_no',inplace=True, drop=False)
#df3.set_index('account_no',inplace=False, drop=True)
print("DF3 with inplace set to True : \n", df3)
print("\nDF1 Data : \n", df1)
Output:
DF3 with inplace set to True :
None
DF1 Data :
account_no branch
city_code customer_name amount
account_no
2112 2112 3212.0
321.0 Sidhika 19000
2119 2119 NaN
215.0 Prayansh 12000
2115 2115 4321.0
212.0 Rishika 15000
2435 2435 2312.0
NaN Sagarika 13000
2356 2356 7548.0
256.0 NaN 15000
So here we can see the output of DF3 is None because df1.set_index uses
parameter inplace=”True” which says that changes need to be done in original
dataframe and returns nothing.
df3=df1.set_index('account_no',inplace=True, drop=False)
Now lets change the inplace to Flase, by definition it says that it
should change in the copy of dataframe object and returns an df object
#inplace is set to True
df3=df1.set_index('account_no',inplace=False, drop=False)
#df3.set_index('account_no',inplace=False, drop=True)
print("DF3 with inplace set to False : \n", df3)
print("\nDF1 Data : \n", df1)
df3=df1.set_index('account_no',inplace=False, drop=False)
#df3.set_index('account_no',inplace=False, drop=True)
print("DF3 with inplace set to False : \n", df3)
print("\nDF1 Data : \n", df1)
Output:
DF3 with inplace set to False :
account_no branch
city_code customer_name amount
account_no
2112 2112 3212.0
321.0 Sidhika 19000
2119 2119 NaN
215.0 Prayansh 12000
2115 2115 4321.0
212.0 Rishika
15000
2435 2435 2312.0
NaN Sagarika 13000
2356 2356 7548.0
256.0 NaN 15000
DF1 Data :
account_no branch
city_code customer_name amount
0 2112 3212.0
321.0 Sidhika 19000
1 2119 NaN
215.0 Prayansh 12000
2 2115 4321.0
212.0 Rishika 15000
3 2435 2312.0
NaN Sagarika 13000
4 2356 7548.0
256.0 NaN
15000
With the output we can see the changes are done in copy of original
dataframe without affecting the original one.
Complete Program:
import pandas as pd
import numpy as np
df1 = pd.read_csv("NullFilterExample.csv")
print('Original DF rows \n',df1 , '\n')
#inplace is set to False
df3=df1.set_index('account_no',inplace=False, drop=False)
#df3.set_index('account_no',inplace=False, drop=True)
print("DF3 with inplace set to False : \n", df3)
print("\nDF1 Data : \n", df1)
#inplace is set to True
df4=df1.set_index('account_no',inplace=True, drop=False)
#df3.set_index('account_no',inplace=False, drop=True)
print("DF3 with inplace set to True : \n", df4)
print("\nDF1 Data : \n", df1)
import numpy as np
df1 = pd.read_csv("NullFilterExample.csv")
print('Original DF rows \n',df1 , '\n')
#inplace is set to False
df3=df1.set_index('account_no',inplace=False, drop=False)
#df3.set_index('account_no',inplace=False, drop=True)
print("DF3 with inplace set to False : \n", df3)
print("\nDF1 Data : \n", df1)
#inplace is set to True
df4=df1.set_index('account_no',inplace=True, drop=False)
#df3.set_index('account_no',inplace=False, drop=True)
print("DF3 with inplace set to True : \n", df4)
print("\nDF1 Data : \n", df1)
Data Science with…Python J
Post Reference: Vikram Aristocratic Elfin Share