gpt4 book ai didi

python - 将多个 lambda 函数与 pandas 数据框一起使用

转载 作者:太空宇宙 更新时间:2023-11-03 14:39:21 25 4
gpt4 key购买 nike

我有一个 pd 数据框,其中名为“process_id”的列对于多个时间步具有与之关联的不同参数。我想从这些中提取一些信息并将它们放入一个新的数据框中(这样我就不必使用数据的所有细节)。下面是我的意思的一个例子,我为每个“process_id”保留每个参数的最小值、最大值、平均值和标准差,我还定义了一个 lambda 函数来保存最后 5 个时间步长中参数的平均值:

features = df.groupby('process_id').agg(['min', 'max', 'mean', 'std', lambda x: x.tail(5).mean()])

这工作正常,lambda 函数将表中参数的名称更改为如下所示:“parameter_lambda”(不确定如何工作,但它有效)。现在的问题是,如果我想添加另一个 lambda 函数,像这样(或任何其他 lambda 定义):

features = df.groupby('process_id').agg(['min', 'max', 'mean', 'std', lambda x: x.tail(5).mean(),lambda x: x.iloc[0:int(len(df)/5)].mean()])

我收到这个错误:

Function names must be unique, found multiple named

这是有道理的,因为两个 lambda 函数在数据框中具有相同的名称。但我不知道如何解决这个问题。

我试过这样的:

df.groupby('dummy').agg({'returns':{'Mean': np.mean, 'Sum': np.sum}})

描述here ,但我收到此错误:

SpecificationError: cannot perform renaming for returns with a nested dictionary

有人可以帮助我吗?谢谢!

最佳答案

lambda 函数在 lambda 创建多个 para 时会出现重名错误的问题

fuc1=lambda x: x.tail(5).mean()
fuc1.__name__ = 'tail_mean'

fuc2=lambda x: x.iloc[0:int(len(df)/5)].mean()
fuc2.__name__ = 'len_mean'

features = df.groupby('process_id').agg(['min', 'max', 'mean', 'std', fuc1,fuc2])

关于python - 将多个 lambda 函数与 pandas 数据框一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54620016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com