Как применить функцию к нескольким pandas столбцам в качестве аргументов? - PullRequest
2 голосов
/ 24 января 2020

Пожалуйста, вы можете помочь мне решить мою ежедневную проблему? У меня есть панда 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 ]

1 голос
/ 24 января 2020

, если age_classify - это функция, которая принимает строку в качестве аргумента - единственное, что вам нужно изменить: df ['n_Age'] = df ['Age'] [набор данных ['Age']. Notnull ()]. применить (age_classify, ось = 1 )

1 голос
/ 24 января 2020

Вы можете просто создать функцию, которая принимает два ввода и возвращает значение, а затем присваивает ему новый столбец.

Например:

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
0 голосов
/ 28 января 2020

Я изменил свою функцию:

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 Я не знаю, как прогрессировать ... Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...