Для ваших функций вам необходимо передать отдельную переменную для каждого аргумента, который вызывает ваша функция. Если вы хотите создать новый столбец в фрейме данных, который содержит максимум для трех столбцов «X», «Y», «Z», вы должны использовать apply и lambda для итерации по каждой строке, отправив каждую запись из трех столбцов к функции и поместите вывод функции в новый столбец. Используя ваш пример, это будет выглядеть так:
df['Max'] = df.apply(lambda x: max_value(x['X'],x['Y'], x['Z']), axis=1)
Это создаст новый столбец в фрейме данных с заголовком «Макс» и максимальными значениями «X», «Y» и «Z». "столбцы для каждой строки будут выведены туда. Применить применяет функцию max_value к каждой строке в фрейме данных, и три аргумента отправляются функции из столбцов X, Y и Z.
Затем ваша функция должна будет просмотреть что-то вроде:
def max_value(X, Y, Z):
max_val = max(X, Y, Z)
return max_val
Функции принимают три аргумента: X, Y, Z, которые передаются функцией apply, которая принимает каждый из аргументов из соответствующего столбца в каждой строке.
Сообщите мне, если я не понял вопрос.
Изменить:
В зависимости от того, как набор данных загружается из CSV, вам может потребоваться сбросить индекс перед вызовом функции :
df = df.reset_index()