Я пытаюсь очистить некоторый код в Python, чтобы векторизовать набор функций, и мне интересно, есть ли хороший способ применить для передачи нескольких аргументов. Рассмотрим следующую (текущую версию):
def function_1(x):
if "string" in x:
return 1
else:
return 0
df['newFeature'] = df['oldFeature'].apply(function_1)
С приведенным выше я должен написать новую функцию (function_1, function_2 и т.д.), чтобы проверить каждую подстроку "string"
, которую я хочу найти. В идеальном мире я мог бы объединить все эти избыточные функции и использовать что-то вроде этого:
def function(x, string):
if string in x:
return 1
else:
return 0
df['newFeature'] = df['existingFeature'].apply(function("string"))
Но попытка вернуть ошибку TypeError: function() takes exactly 2 arguments (1 given)
Есть ли другой способ выполнить одно и то же?
Edit:
def function(string, x):
if string in x:
return 1
else:
return 0
df['newFeature'] = df['oldFeature'].apply(partial(function, 'string'))