简体   繁体   English

基于三个现有列创建一个新列

[英]Creating a new column based on three existing columns

I have a data frame with three columns, target_degrees , low_degrees , and high_degrees .我有一个包含三列的数据框target_degreeslow_degreeshigh_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 .我想创建一个标记为 success 的新列,用于检查 target_degrees 是否位于low_degreeshigh_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.我已尝试在以下代码中使用np.where ,但出现语法错误。

df['success'] = np.where(df['target_degrees'] is in np.arange(df['low_degrees'], df['high_degrees']), 1, 0)

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

between方法更简洁一点:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM