熊猫基于多个条件添加计分栏

时间:2019-07-16 19:44:23

标签: python pandas numpy

假设我具有以下数据框:

  Priority   Color Risk
1        1   Green    8
2        9     Red   10
3        5  Orange    4

我想添加一列“分数”,该列基于与其他列相关的多个条件为每一行计算分数。例如,条件和得分可以是:

  • 如果“优先级”列> 5,则添加1点,否则添加0点
  • 如果“颜色”列==“红色”,请添加1点,否则添加0点
  • 如果“风险”列> 7,则添加1点,否则添加0点

在这种情况下,第1行将获得1分,第2行将获得3分,第3行将获得0分。

有人知道我该怎么做到吗?

1 个答案:

答案 0 :(得分:1)

您可以使用.astype对转换为整数的布尔条件求和:

df['score'] = ( (df['Priority'] > 5).astype(int)
                + (df['Color'] == 'Red').astype(int) 
                + (df['Risk'] > 7).astype(int) )
   Priority   Color  Risk  score
1         1   Green     8      1
2         9     Red    10      3
3         5  Orange     4      0