无法通过lambda来申请pandas DataFram

2024-05-18 19:14:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将一个函数应用于pandas数据帧的所有行(实际上只有该数据帧中的一列)

我肯定这是语法错误,但我知道我做错了什么

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

col列包含一组adatetime.datetime对象,其中d1是最早的。我试图得到每行的总秒数的列

编辑我一直收到以下错误

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)

我也犯了同样的错误


Tags: 数据lambda函数编辑df错误argsdiff
1条回答
网友
1楼 · 发布于 2024-05-18 19:14:30

一个序列没有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

有一个是给adf的,但是不清楚当你在一个系列中调用它时,你期望它是如何工作的,但是你期望它在一个连续的系列中工作?

相关问题 更多 >

    热门问题