Как использовать функцию apply для функции с несколькими переменными? - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть набор данных следующего формата:

msgText                   name
'My name is Donald'       Donald
'I am married to Jenny'   Donald 
'Donald is from Europe'   Donald

Я хотел бы заменить части столбца msgText, так как он содержит имя из столбца name, и я хотел бы заменить его на 'Карл'. Так что мой желаемый результат выглядит следующим образом:

msgText                   name
'My name is Karl'         Donald
'I am married to Jenny'   Donald 
'Karl is from Europe'     Donald

Для этого у меня есть следующая функция:

def replaceName(text, name):
    newText = text.replace(name, 'Karl')
    return newText

Однако я не знаю, как применить эту функцию к серии Pandas.

С чего я начал:

dataset['filtered_text'] = dataset.msgText.apply(replaceName)

Однако здесь я не принимаю во внимание название coluimn. Как я могу использовать функцию apply и использовать два столбца в качестве входных переменных для моей функции?

1 Ответ

1 голос
/ 30 апреля 2019

Вот решение, которое вы ищете:

df['msgText'] = df.apply(lambda row: replaceName(row['msgText'], row['name']), axis=1)

print(df)
                   msgText     name
0        'My name is Karl'   Donald
1  'I am married to Jenny'   Donald 
2    'Karl is from Europe'   Donald
...