Проблемы, связанные с lambda для подачи заявки на панды DataFrame

Я пытаюсь применить функцию ко всем строкам pandas DataFrame (фактически только один столбец в этом DataFrame)

Я уверен, что это синтаксическая ошибка, но я знаю, что я делаю неправильно

df['col'].apply(lambda x, y:(x - y).total_seconds(), args=[d1], axis=1)

Столбец col содержит кучу объектов datetime.datetime а d1 - самый ранний из них. Я пытаюсь получить столбец из общего количества секунд для каждой из строк

EDIT Я продолжаю получать следующую ошибку

TypeError: <lambda>() got an unexpected keyword argument 'axis'

Я не понимаю, почему axis переходит к моей lambda функции

EDIT 2

Я также пытался сделать

def diff_dates(d1, d2):
    return (d1-d2).total_seconds()

df['col'].apply(diff_dates, args=[d1], axis=1)

И я получаю ту же ошибку

Ответы

Ответ 1

Ну нет никакого параметра axis для серии: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.apply.html#pandas.Series.apply

Series.apply(func, convert_dtype = True, args =(), ** kwds)

func : function
convert_dtype : boolean, default True
Try to find better dtype for elementwise function results. If False, leave as dtype=object
args : tuple
Positional arguments to pass to function in addition to the value

Есть один для df, но неясно, как вы ожидаете, что это сработает, когда вы вызываете его в серии, но вы ожидаете, что он будет работать в строке?