Ruslan Pylypyuk
Ruslan Pylypyuk

Reputation: 57

Applying if-else statement to create new column

I have applied if-else statement in function change_test, but it has resulted in None values in each test column, here is my code:

def change_test(df):
  if ((df['product_id'] == 7.99) & (df['refunded'] == 1)):
    df['test'] = 0
  elif (df['product_id'] == 49.99):
    df['test'] == 49.99
  else :
    df['test'] = df['product_id'] * (df['days_used_app'] / 7)
df['test'] = df.apply(change_test, axis = 1)

And here is my dataframe before applying this function

enter image description here

Upvotes: 0

Views: 875

Answers (1)

Ynjxsjmh
Ynjxsjmh

Reputation: 30070

You should return value in apply function

def change_test(row):
  if ((row['product_id'] == 7.99) & (row['refunded'] == 1)):
    return 0
  elif (row['product_id'] == 49.99):
    return 49.99
  else :
    return row['product_id'] * (row['days_used_app'] / 7)

df['test'] = df.apply(change_test, axis = 1)

Upvotes: 2

Related Questions