【问题标题】:How to use functions with several paramiters in a groupby如何在 groupby 中使用具有多个参数的函数
【发布时间】:2022-09-23 12:55:26
【问题描述】:

我有以下数据集,我想为其计算几个聚合指标>

对于一些我正在使用标准函数,但对于其他我中继 tsfresh library,我从那里导入函数:

sample.groupby(\'id\').agg([\'std\', benford_correlation,absolute_maximum])

它适用于只有一个参数的函数,例如:

from tsfresh.feature_extraction.feature_calculators import benford_correlation #(x)
from tsfresh.feature_extraction.feature_calculators import absolute_maximum #(x)

但对于其他人来说:

从 tsfresh.feature_extraction.feature_calculators 导入自相关#(x, lag)

我得到和错误,因为它有两个参数,x 和 lag by 我只在 groupby 中隐式传递 x。

如何指定所需的其他参数?

    标签: python pandas group-by time-series tsfresh


    【解决方案1】:

    请参阅pandas.DataFrameGroupBy.aggregate 文档。额外的关键字参数被传递给函数。所以你可以这样做:

    sample.groupby('id').agg(
        ['std', benford_correlation,absolute_maximum],
        additional_arg=value,
    )
    

    但如果您需要向每个函数传递不同的参数,则可以使用 lambda 函数:

    sample.groupby('id').agg(
        [
            'std',
            lambda s: benford_correlation(s, lag=1),
            absolute_maximum,
        ],
    )
    

    【讨论】:

      猜你喜欢
      • 2013-11-14
      • 2020-12-07
      • 2021-01-11
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多