如何使用df中的多个列来运行多个条件以计算新列?

时间:2019-01-14 16:48:48

标签: python pandas

例如,假设我有一个df

a    b     c       

1    3     5       
5    9     4      

我有if个条件:

if a < 2:
   3
elif  a < 3:
   4
else: b + c

如何测试条件并为df的每一行返回结果,如下所示?

a    b     c    d

1    3     5    3 
5    9     4    13

编辑:理想情况下,我想创建一个function,允许我

def function(a, b, c) df['d'] = function(a, b, c)

并计算所有数据行。因为在实际数据中,有100多个条件语句和10s的列。

2 个答案:

答案 0 :(得分:1)

您可以使用套用方法:

def custom_calc(x, a , b):
    if x[0] < 2:
        return 3

    if x[0] > 3:
        return x + a + b

df.a = df[['a', 'b', 'c']].apply(func=check, args=(df.b,df.c))

根据需要编辑自定义功能

答案 1 :(得分:1)

您可以沿轴1使用true|false功能。

apply