Pandas - 当不是频率的倍数时重新采样?
Pandas - Resample when not multiple of frequency?
我有一个 1204 天的日频率时间序列。
我想在 365D 的基础上(通过求和)对其进行重新采样,但时间序列跨越 3,29 * 365D,而不是 365D 的倍数。
默认情况下,resample 返回 4 行。
原始数据如下:
DATE
2012-08-12 15350.0
2012-08-19 11204.0
2012-08-26 11795.0
2012-09-02 15160.0
2012-09-09 9991.0
2012-09-16 12337.0
2012-09-23 10721.0
2012-09-30 9952.0
2012-10-07 11903.0
2012-10-14 8537.0
...
2015-09-27 14234.0
2015-10-04 17917.0
2015-10-11 13610.0
2015-10-18 8716.0
2015-10-25 15191.0
2015-11-01 8925.0
2015-11-08 13306.0
2015-11-15 8884.0
2015-11-22 11527.0
2015-11-29 6859.0
df.index.max() - df.index.min()
Timedelta('1204 days 00:00:00')
如果我申请:
df.resample('365D').sum()
我得到了:
DATE
2012-08-12 536310.0
2013-08-12 555016.0
2014-08-12 569548.0
2015-08-12 245942.0
Freq: 365D, dtype: float64
最后一个 bin 似乎覆盖了不到 365 天。
如何强制重新采样以将其从结果中排除?
df.resample('365D')
在指数最低的那一天开始采样。所以最后一个箱子几乎总是不会覆盖所有的日子。跳过它
df.resample('365D').sum()[:-1]
也可以考虑按start/end年
抽样
df.resample('A').sum()
我有一个 1204 天的日频率时间序列。 我想在 365D 的基础上(通过求和)对其进行重新采样,但时间序列跨越 3,29 * 365D,而不是 365D 的倍数。 默认情况下,resample 返回 4 行。
原始数据如下:
DATE
2012-08-12 15350.0
2012-08-19 11204.0
2012-08-26 11795.0
2012-09-02 15160.0
2012-09-09 9991.0
2012-09-16 12337.0
2012-09-23 10721.0
2012-09-30 9952.0
2012-10-07 11903.0
2012-10-14 8537.0
...
2015-09-27 14234.0
2015-10-04 17917.0
2015-10-11 13610.0
2015-10-18 8716.0
2015-10-25 15191.0
2015-11-01 8925.0
2015-11-08 13306.0
2015-11-15 8884.0
2015-11-22 11527.0
2015-11-29 6859.0
df.index.max() - df.index.min()
Timedelta('1204 days 00:00:00')
如果我申请:
df.resample('365D').sum()
我得到了:
DATE
2012-08-12 536310.0
2013-08-12 555016.0
2014-08-12 569548.0
2015-08-12 245942.0
Freq: 365D, dtype: float64
最后一个 bin 似乎覆盖了不到 365 天。 如何强制重新采样以将其从结果中排除?
df.resample('365D')
在指数最低的那一天开始采样。所以最后一个箱子几乎总是不会覆盖所有的日子。跳过它
df.resample('365D').sum()[:-1]
也可以考虑按start/end年
抽样df.resample('A').sum()