Ways to apply an if condition in Pandas DataFrame - GeeksforGeeks

18 Aug, 2020
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 :
# importing pandas as pdimport pandas as pd  # create the DataFramedf = pd.DataFrame({    'Product': ['Umbrella', 'Matress', 'Badminton',                 'Shuttle', 'Sofa', 'Football'],    'MRP': [1200, 1500, 1600, 352, 5000, 500],    'Discount': [0, 10, 0, 10, 20, 40]})  # display the DataFrameprint(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. 
# if condition with column conditions given# the condition is if MRP of the product <= 2000 # and discount > 0 show me those itemsdf[(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 :
# if condition with row tuple givendf[(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.
# importing pandas as pd import pandas as pd   # Create the dataframe df = pd.DataFrame({    'Product': ['Umbrella', 'Matress', '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. 
# 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 : 
Python pandas-dataFrame
Python Pandas-exercise
Python-pandas
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Install PIP on Windows ?
How to drop one or multiple columns in Pandas Dataframe
How To Convert Python Dictionary To JSON?
Check if element exists in list in Python
Defaultdict in Python
Python | Get unique values from a list
Python | os.path.join() method
Selecting rows in pandas DataFrame based on conditions
Create a directory in Python
Python | Pandas dataframe.groupby()