Reputation: 634
I have a data frame with three columns, target_degrees
, low_degrees
, and high_degrees
. I would like to make a new column labeled success that checks to see if target_degrees is located between low_degrees
and high_degrees
.
example dataframe:
target_degrees low_degrees high_degrees success
10 0 50 1
50 45 100 1
20 100 200 0
1 300 350 0
I have tried using np.where
in the following code but I am getting a syntax error.
df['success'] = np.where(df['target_degrees'] is in np.arange(df['low_degrees'], df['high_degrees']), 1, 0)
Upvotes: 0
Views: 44
Reputation: 9941
A bit more concisely with between
method:
df['success'] = df['target_degrees'].between(df['low_degrees'], df['high_degrees'])
Upvotes: 0
Reputation: 8933
Use multiple conditions:
df['success'] = np.where(((df['target_degrees'] >= df['low_degrees']) & (df['target_degrees']<= df['high_degrees'])), 1, 0)
output:
target_degrees low_degrees high_degrees success
0 10 0 50 1
1 50 45 100 1
2 20 100 200 0
3 1 300 350 0
Upvotes: 1