【问题标题】:Aggregate time series in python在python中聚合时间序列
【发布时间】:2015-05-28 16:30:36
【问题描述】:

我们如何按小时或分钟粒度聚合时间序列?如果我有一个如下所示的时间序列,那么我希望这些值按小时聚合。 pandas 是否支持它,或者在 python 中是否有一种很好的方法来做到这一点?

timestamp, value
2012-04-30T22:25:31+00:00, 1
2012-04-30T22:25:43+00:00, 1
2012-04-30T22:29:04+00:00, 2
2012-04-30T22:35:09+00:00, 4
2012-04-30T22:39:28+00:00, 1
2012-04-30T22:47:54+00:00, 8
2012-04-30T22:50:49+00:00, 9
2012-04-30T22:51:57+00:00, 1
2012-04-30T22:54:50+00:00, 1
2012-04-30T22:57:22+00:00, 0
2012-04-30T22:58:38+00:00, 7
2012-04-30T23:05:21+00:00, 1
2012-04-30T23:08:56+00:00, 1

我还尝试通过调用来确保我的数据框中的数据类型正确:

  print data_frame.dtypes

我得到以下结果

ts     datetime64[ns]
val             int64

当我在数据框上调用 group by 时

grouped = data_frame.groupby(lambda x: x.minute)

我收到以下错误:

grouped = data_frame.groupby(lambda x: x.minute)
AttributeError: 'int' object has no attribute 'minute'

【问题讨论】:

标签: python pandas time-series timeserieschart


【解决方案1】:

http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.resample.htmlDataFrame.resample 方法。您可以在此处指定聚合方式,在您的情况下为sum

data_frame.resample("1Min", how="sum")

http://pandas.pydata.org/pandas-docs/dev/timeseries.html#up-and-downsampling

【讨论】:

  • data_frame.resample("1Min").mean() 是新语法(版本 = 0.19.2)
猜你喜欢
  • 2011-04-28
  • 2018-07-24
  • 2019-09-16
  • 2019-07-22
  • 2018-05-18
  • 1970-01-01
  • 2018-01-14
  • 2015-10-11
  • 2023-03-07
相关资源
最近更新 更多