python - R中的规则时间间隔

标签 python r pandas time-series

我有一个包含每天销售量的时间序列数据集 (ts)。

ts
## A tibble: 40 x 2
#        dates sells
#       <date> <int>
# 1 2014-09-01    32
# 2 2014-09-02     8
# 3 2014-09-03    39
# 4 2014-09-04    38
# 5 2014-09-05     1
# 6 2014-09-06    28
# 7 2014-09-07    33
# 8 2014-09-08    21
# 9 2014-09-09    29
#10 2014-09-10    33
## ... with 30 more rows

我想定期获取销售总和,例如四天。

在这种情况下,前 8 天的输出将是:

## A tibble: 2 x 1
#  value
#  <dbl>
#1   117
#2    83

我知道用 resample 很容易做到来自 python 中的 pandas,但是我无法在 R 中完成。

我的数据:

ts <- structure(list(dates = structure(c(16314, 16315, 16316, 16317, 
16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 
16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 
16336, 16337, 16338, 16339, 16340, 16341, 16342, 16343, 16344, 
16345, 16346, 16347, 16348, 16349, 16350, 16351, 16352, 16353
), class = "Date"), sells = c(32L, 8L, 39L, 38L, 1L, 28L, 33L, 
21L, 29L, 33L, 13L, 32L, 10L, 15L, 19L, 3L, 17L, 35L, 29L, 10L, 
27L, 14L, 30L, 11L, 24L, 31L, 10L, 27L, 32L, 23L, 25L, 2L, 22L, 
4L, 18L, 22L, 15L, 16L, 23L, 3L)), .Names = c("dates", "sells"
), row.names = c(NA, -40L), class = c("tbl_df", "tbl", "data.frame"
))

谢谢。

最佳答案

R , 一种选择是使用 cut.Dategroup_by创建 4 天的间隔,然后获取 sum的“销售”

library(dplyr)
out <- ts %>%
         group_by(interval = cut(dates, breaks = '4 day')) %>% 
         summarise(value = sum(sells))
head(out, 2)
# A tibble: 2 x 2
#   interval  value
#  <fctr>     <int>
#1 2014-09-01   117
#2 2014-09-05    83

关于python - R中的规则时间间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49299766/

相关文章:

python - 在 Windows 上使用 pip install MySQL-python 安装 MySQL 不起作用?

r - xts 对象中月数据(一月到十二月)的平均值

r - 根据数据框的行创建列

r - 如何根据相对值(最大值/最小值)自动更改标签颜色?

python-2.7 - 在具有多级索引的 Pandas Dataframe 上执行 groupby 和滚动窗口会导致重复的索引条目

python - 如何计算 ts1 - ts2.interpolate(index=ts1.index)

python - 使用 PIL 绘制下划线文本

python - 如何将 Spacy en_core_web_md 模型放入 Python 包中

python - 是否有一种最佳方法可以在分组的 Pandas 数据框中获取所有值组合?

pandas - 根据系列和数据帧中的内容生成 boolean 数据帧