【发布时间】:2020-02-13 08:43:42
【问题描述】:
resample 的文档说它可以将DateOffset 作为规则。
但尝试这个有时会导致NotImplementedError。
- 传递一个字符串,例如
resample('2M')有效。 - 等效的
resample(pd.offsets.MonthEnd(2))也可以。 - 但类似(尽管不同)
resample(pd.offsets.DateOffset(months=2))失败。
这是要重现的代码:
idx = pd.date_range('20190101', periods=14, freq='3W')
s = pd.Series(range(len(idx)), index=idx)
s.resample(pd.offsets.DateOffset(months=2)).mean()
追踪:
Traceback (most recent call last):
....
File "....core\generic.py", line 8449, in resample
level=level,
File "....core\resample.py", line 1305, in resample
tg = TimeGrouper(**kwds)
File "....core\resample.py", line 1378, in __init__
rule = freq.rule_code
File "....tseries\offsets.py", line 442, in rule_code
return self._prefix
File "....tseries\offsets.py", line 438, in _prefix
raise NotImplementedError("Prefix not defined")
NotImplementedError: Prefix not defined
resample 仅支持某些DateOffsets 对吗?
它不/不支持哪些种类?
【问题讨论】:
-
相当于 '2M' 将是
s.resample(pd.offsets.MonthEnd(2)).mean() -
已编辑。谢谢。
-
这方面有什么更新吗?
-
@ChristophBühler 有一个关于这个问题的错误报告:github.com/pandas-dev/pandas/issues/31697
-
这个错误似乎还没有得到处理。有没有人发现另一种方法?也许以某种方式将 DateOffset 转换为字符串...
标签: pandas