微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – pandas .resample()方法的R等价物是什么?

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

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

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

解决方法:

如果你使用data.table和lubridate,它可能看起来像这样

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))

如果你想从一分钟到一小时获得数据意味着你可以做到

 dt[,mean(datum),by=floor_date(ts,"hour")]

如果你有一堆列,并且你希望所有这些都是平均值,那么你可以做到

dt[,lapply(.SD,mean),by=floor_date(ts,"hour")]

您可以替换任何您想要的功能的均值.您可以将“小时”替换为“秒”,“分钟”,“小时”,“日期”,“周”,“月”,“年”.嗯,你不能从一分钟到几秒钟,因为这需要魔法,但无论如何你可以从微秒到秒.

It is not possible to convert a series from a lower periodicity to a
higher periodicity – e.g. weekly to daily or daily to 5 minute bars,
as that would require magic.

-Jeffrey Ryan来自xts手册.

我从来没有学过xts,所以我不知道使用xts对象的语法,但这条线很有名(或者至少与手册中的一行一样出名)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐