传入lambda时遇到麻烦,无法申请熊猫DataFrame

问题描述 投票:33回答:1

我正在尝试将函数应用于熊猫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函数

编辑2

我也尝试过做

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

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

我也遇到同样的错误

python pandas dataframe lambda apply
1个回答
46
投票

注意axis调用没有Series.apply参数,>与Series.apply调用不同。

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

DataFrame.apply

DataFrame.apply有一个,但是不清楚当您在一个系列中调用它但希望它连续运行时,您希望它如何工作?

© www.soinside.com 2019 - 2024. All rights reserved.