magladde
magladde

Reputation: 634

Creating a new column based on three existing columns

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

Answers (2)

perl
perl

Reputation: 9941

A bit more concisely with between method:

df['success'] = df['target_degrees'].between(df['low_degrees'], df['high_degrees'])

Upvotes: 0

sentence
sentence

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

Related Questions