add value to pandas dataframe in if statement code example

Example 1: case statement in pandas

# If the row value in column 'is_blue' is 1 
# Change the row value to 'Yes' 
# otherwise change it to 'No'
df['is_blue'] = df['is_blue'].apply(lambda x: 'Yes' if (x == 1) else 'No') 


# You can also use mapping to accomplish the same result
# Warning: Mapping only works once on the same column creates NaN's otherwise
df['is_blue'] = df['is_blue'].map({0: 'No', 1: 'Yes'})

Example 2: compute value based on condition of existing column dataframe

# create a list of our conditions
conditions = [
    (df['likes_count'] <= 2),
    (df['likes_count'] > 2) & (df['likes_count'] <= 9),
    (df['likes_count'] > 9) & (df['likes_count'] <= 15),
    (df['likes_count'] > 15)
    ]

# create a list of the values we want to assign for each condition
values = ['tier_4', 'tier_3', 'tier_2', 'tier_1']

# create a new column and use np.select to assign values to it using our lists as arguments
df['tier'] = np.select(conditions, values)

# display updated DataFrame
df.head()

Example 3: add a value to an existing field in pandas dataframe after checking conditions

# Create a new column called based on the value of another column
# np.where assigns True if gapminder.lifeExp>=50 
gapminder['lifeExp_ind'] = np.where(gapminder.lifeExp >= 50, True, False)
gapminder.head(n=3)

Example 4: add a value to an existing field in pandas dataframe after checking conditions

gapminder['gdpPercap_ind'] = gapminder.gdpPercap.apply(lambda x: 1 if x >= 1000 else 0)
gapminder.head()