9

時系列を時間単位または分単位で集計するにはどうすればよいでしょうか? 次のような時系列がある場合、値を時間ごとに集計する必要があります。パンダはそれをサポートしていますか、それとも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'
4

1 に答える 1

10

http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.resample.html DataFrame.resample method. You can specify here way of aggregation, in your case sum.

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

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

于 2015-03-25T08:25:56.887 に答える