Open In App

Ways to apply an if condition in Pandas DataFrame

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

Generally on a Pandas DataFrame the if condition can be applied either column-wise, row-wise, or on an individual cell basis. The further document illustrates each of these with examples.

First of all we shall create the following DataFrame : 

python




# importing pandas as pd
import pandas as pd
 
# create the DataFrame
df = pd.DataFrame({
    'Product': ['Umbrella', 'Mattress', 'Badminton',
               'Shuttle', 'Sofa', 'Football'],
    'MRP': [1200, 1500, 1600, 352, 5000, 500],
    'Discount': [0, 10, 0, 10, 20, 40]
})
 
# display the DataFrame
print(df)


Output : 

Example 1 : if condition on column values (tuples) : The if condition can be applied on column values like when someone asks for all the items with the MRP <=2000 and Discount >0 the following code does that. Similarly, any number of conditions can be applied on any number of attributes of the DataFrame. 

python3




# if condition with column conditions given
# the condition is if MRP of the product <= 2000
# and discount > 0 show me those items
df[(df['MRP'] <= 2000) & (df['Discount'] > 0)]


Output : 

Example 2 : if condition on row values (tuples) : This can be taken as a special case for the condition on column values. If a tuple is given (Sofa, 5000, 20) and finding it in the DataFrame can be done like :

python3




# if condition with row tuple given
df[(df['Product'] == 'Sofa') & (df['MRP'] == 5000) & (df['Discount']== 20)]


Output : 

Example 3 : Using Lambda function : Lambda function takes an input and returns a result based on a certain condition. It can be used to apply a certain function on each of the elements of a column in Pandas DataFrame. The below example uses the Lambda function to set an upper limit of 20 on the discount value i.e. if the value of discount > 20 in any cell it sets it to 20.

python3




# importing pandas as pd
import pandas as pd
 
# Create the dataframe
df = pd.DataFrame({
    'Product': ['Umbrella', 'Mattress', 'Badminton',
                'Shuttle', 'Sofa', 'Football'],
    'MRP': [1200, 1500, 1600, 352, 5000, 500],
    'Discount': [0, 10, 0, 10, 20, 40]
})
 
# Print the dataframe
print(df)
 
# If condition on column values using Lambda function
df['Discount'] = df['Discount'].apply(lambda x : 20 if x > 20 else x)
print(df)


Output :

Example 4 : Using iloc() or loc() function : Both iloc() and loc() function are used to extract the sub DataFrame from a DataFrame. The sub DataFrame can be anything spanning from a single cell to the whole table. iloc() is generally used when we know the index range for the row and column whereas loc() is used on a label search.

The below example shows the use of both of the functions for imparting conditions on the Dataframe. Here a cell with index [2, 1] is taken which is the Badminton product’s MRP. 

python3




# If condition on a cell value using iloc() or loc() functions
# iloc() is based on index search and loc() based on label search
 
# using iloc()
if df.iloc[2, 1] > 1500:
  print("Badminton Price > 1500")
else:
  print("Badminton Price < 1500")
 
# using loc()
print(df.loc[2, 'MRP'])
if df.iloc[2, 'MRP'] > 1500:        
  print("Badminton Price > 1500")
else:
  print("Badminton Price < 1500")


Output : 



Last Updated : 12 Dec, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads