2

pandas resample 関数を使用して、毎日のTimeSeries値をアップサンプリングしようとしています。私が 1 日 (2012-01-01) をアップサンプリングしているとき、結果はアップサンプリングの対象となる日の平均であると期待しています。結果は次のようになります。

2012-01-01   -0,285344
Freq: D

ただし、パンダは次のように 2 日を返します。

2012-01-01   -0.412417
2012-01-02    0.127073
Freq: D

これはバグですか、それとも機能ですか? それが機能の場合、目標を達成するためにリサンプル引数を設定するにはどうすればよいですか?

ありがとう、トーマス

完全な例は次のとおりです。

In [66]: rng = date_range('1/1/2012', periods=24, freq='H')

In [67]: ts = Series(np.random.randn(len(rng)), index=rng)

In [68]: ts
Out[68]:
2012-01-01 00:00:00   -0.412417
2012-01-01 01:00:00    0.442482
2012-01-01 02:00:00    1.321009
2012-01-01 03:00:00    0.104408
2012-01-01 04:00:00    1.124611
2012-01-01 05:00:00   -1.041293
2012-01-01 06:00:00    1.194104
2012-01-01 07:00:00   -0.249706
2012-01-01 08:00:00    1.927320
2012-01-01 09:00:00   -0.828365
2012-01-01 10:00:00    0.163760
2012-01-01 11:00:00   -0.736053
2012-01-01 12:00:00   -0.323408
2012-01-01 13:00:00    1.478162
2012-01-01 14:00:00    1.449437
2012-01-01 15:00:00   -1.114443
2012-01-01 16:00:00   -0.003780
2012-01-01 17:00:00    0.554562
2012-01-01 18:00:00   -2.019614
2012-01-01 19:00:00    0.463484
2012-01-01 20:00:00    0.862818
2012-01-01 21:00:00   -1.280048
2012-01-01 22:00:00   -0.137987
2012-01-01 23:00:00   -0.428777
Freq: H

In [69]: ts.resample('D')
Out[69]:
2012-01-01   -0.412417
2012-01-02    0.127073
Freq: D
4

1 に答える 1

2

loffset オプションと closed オプションを使用すると、必要な結果を得ることができます。

>>> ts.resample('D', how='mean', closed="left", loffset=datetime.timedelta(days=-1))
2012-01-01    0.200299
于 2012-08-02T09:05:01.480 に答える