如何将函数用作参数的大熊猫列?

时间:2020-01-24 15:38:13

标签: pandas function apply

请您能帮我解决我的日常问题吗? 我有一个2列的熊猫数据框df:

MatSituation  NbChild 
    1         0
    2         1
    3         0
    4         1

我想用函数f创建一个新列,该函数具有“ MatSituation”和“ NbChild”参数:

df[n_NbChild] = df['MatSituation ','NbChild '].apply(.....)

请问如何处理这种情况?

非常感谢。 蒂埃里

df['n_Age'] = df['Age'][dataset['Age'].notnull()].apply(age_classify)

3 个答案:

答案 0 :(得分:1)

您可以只创建一个接受两个输入并返回一个值的函数,然后为其分配一个新列。

例如:

def sum_two_columns(a, b):
    return a + b


df['New Column'] = sum_two_columns(df.MatSituation, df.NbChild)

df

MatSituation  NbChild   New Column
    1         0            1
    2         1            3
    3         0            3
    4         1            5

答案 1 :(得分:1)

如果age_classify是一个接受row作为参数的函数-唯一需要修改的想法是: df ['n_Age'] = df ['Age'] [dataset ['Age']。notnull()]。apply(age_classify, axis = 1

答案 2 :(得分:0)

我修改了功能:

def NbEnfNull(x,y):
    if (y.empty):
        if (x == 1 or x == 2): 
            return 0
        elif (x == 3 or x == 4): 
            return 1   
    else:
        return y

致电:

df['n_nbr_enf'] = NbEnfNull(df['COD_SIS_FAM'],df['NBR_ENF'])

但是我对df ['n_nbr_enf']具有空值

df['n_nbr_enf'].isnull().sum()

1472 我不知道该如何进步... 非常感谢。