I am dealing with a dataframe which has several thousands of rows & has several columns. The columns of interest is called customer_csate_score & group_csate_score
The data looks like below
customer_csate_score group_csate_score
0.000 -0.15
-0.4 0.12
0 0.13
0.578 0.81
0.418 0.96
-0.765 0.1
0.89 -0.87
What I'm trying to do is create 2 new columns in the dataframe called customer_group_csate_score_toggle_status & is_customer_perf_above_group_perf. customer_group_csate_score_toggle_status will be true only when customer_csate_score &
group_csate_score cross over & False when there is no crossover. is_customer_perf_above_group_perf is True if customer_csate_score is above
group_csate_score & False if customer_csate_score is below
group_csate_score
Expected Output for toggle status column
customer_group_csate_score_toggle_status is_customer_perf_above_group_perf
False True
True False
False False
False False
False False
False False
True True
I've tried this code so far -
def check_cust_group_crossover(df, df_key1, def_key2):
return np.where(
(
(df[df_key1] > df[def_key2]) & \
(df[df_key1].shift() < df[def_key2].shift())
),
True, False
)
I'm struggling to implement the entire functionality. Could I please request guidance to implement this?