【发布时间】:2015-11-22 22:02:14
【问题描述】:
我有一个我想“格式化”的 Pandas 时间序列,因为我有一个天数的偏移量,我只想输出高于偏移量天数的序列。事实上,这可以通过简单的一行代码来完成:
series = series.iloc[offset:]
但我有很多情况需要这样做,所以我更喜欢模块化的东西。我才刚刚开始接触装饰器,所以我仍然发现它们很难掌握,但是,我考虑编写如下装饰器:
def apply_offset(series, days):
def adj(*args, **kwargs):
return series(*args, **kwargs).iloc[days:]
return adj
然后将它应用到某个返回序列的函数,如下所示:
@apply_offset(200)
def ret_series(*args, **kwargs):
# returns a series
因此,在上面的示例中,该系列应用了 200 天的偏移量。现在这会在解释器到达装饰时引发错误,即:
TypeError: apply_offset() missing 1 required positional argument: 'offset'
我做错了什么?
【问题讨论】: