python - Pandas - 当频率不是倍数时重新采样?

标签 python pandas time-series resampling

我有一个 1204 天的每日频率时间序列。 我想在 365D 的基础上重新采样(通过求和),但时间序列跨越 3,29 * 365D,而不是 365D 的倍数。 默认情况下,重新采样返回 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

最后一个垃圾箱似乎是覆盖不到 365 天的垃圾箱。 如何强制重新采样以将其从结果中排除?

最佳答案

df.resample('365D') 从索引最低的一天开始采样。所以最后一个垃圾箱几乎总是不会覆盖所有天。直接跳过即可

df.resample('365D').sum()[:-1]

您还可以考虑在年初/年底采样

df.resample('A').sum()

关于python - Pandas - 当频率不是倍数时重新采样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40784976/

相关文章:

python - Pandas合并表: only distinct Ids from second table

python - 使用 pandas 和 Matplotlib 自定义日期时间索引的分组条形图

r - 超过 5 年的移动平均线,日期不规则

javascript - 时间序列数据的线性回归

python - python请求数据中发送 "\r\n"符号

python - Jinja 中的多态宏

python - 是否可以使用 Python 3.6 为 iOS 编写 Kivy 应用程序?

python - 为什么 NumPy 中有奇怪的科学记数法?

python - 对序列号应用 pandas groupby 以从每列中获取单个值

java - Jfreechart 时间序列图