什么是等效的pandas .resample()方法?

Ale*_*lia 6 python r pandas

这是我发现的最近的链接:https://stats.stackexchange.com/questions/5305/how-to-re-sample-an-xts-time-series-in-r

但我没有看到任何关于聚合数据的方法(如平均值,计数,匿名函数),你可以在熊猫中做到这一点.

对于我的程序,我试图让数据帧每2分钟重新采样一次,并取每个间隔的2个值的平均值.谢谢!

Dea*_*gor 6

如果你使用data.tablelubridate可能看起来像这样

library(data.table)
library(lubridate)
#sample data
dt<-data.table(ts=seq(from=ymd('2015-01-01'), to=ymd('2015-07-01'),by='mins'), datum=runif(260641,0,100))
Run Code Online (Sandbox Code Playgroud)

如果你想获取从分钟到每小时的数据意味着你可以这样做

 dt[,mean(datum),by=floor_date(ts,"hour")]
Run Code Online (Sandbox Code Playgroud)

如果您有一堆列并且您希望对所有列进行平均,您可以这样做

dt[,lapply(.SD,mean),by=floor_date(ts,"hour")]
Run Code Online (Sandbox Code Playgroud)

您可以替换mean为您想要的任何功能。您可以将“小时”替换为“秒”、“分钟”、“小时”、“日”、“周”、“月”、“年”。好吧,你不能从分钟到秒,因为这需要魔法,但无论如何你可以从微秒到秒。

无法将序列从较低的周期转换为较高的周期 - 例如每周转换为每日或每日转换为 5 分钟柱,因为这需要魔法。

-来自 xts 手册的 Jeffrey Ryan。

我从未学过 xts,所以我不知道使用 xts 对象执行此操作的语法,但该行很著名(或者至少与手册中的一行一样出名)