dta_hは DataFrame であり、dta_h.Datetimeは次のようになります。
0 2013-03-01 00:00:00
1 2013-02-28 23:00:00
2 2013-02-28 22:00:00
3 2013-02-28 21:00:00
...
Name: Datetime, Length: 63001, dtype: datetime64[ns]
最近まで (これが何を意味するかは後で説明します)、次のようにして、各期間の 1 時間を減算することができました。
dta_h.Datetime-np.timedelta(hours=1)
しかし、今、上記を実行すると、次のようになります。
0 2013-03-01 00:11:34.967296
1 2013-02-28 23:11:34.967296
2 2013-02-28 22:11:34.967296
3 2013-02-28 21:11:34.967296
...
これは明らかに私が望むものではありません。ただし、これは次のとおりです。
[i-timedelta(hours=1) for i in dta_h.Datetime ]
それでも望ましい結果が得られます:
0 2013-02-28 23:00:00
1 2013-02-28 22:00:00
2 2013-02-28 21:00:00
3 2013-02-28 20:00:00
....
Length: 63001, dtype: datetime64[ns]
Pandas 0.11 にアップグレードしたときにこの問題が発生したことは 99% 確信しています。私は、成功しないことを説明する可能性のあるバージョンの違いについて、ドキュメントを調べてきました。この投稿も見つけました:
これはこのパンダの問題を指します
https://github.com/pydata/pandas/issues/3009
そこで読んだことに基づいて、試しました:
dta_h.Datetime-np.timedelta64(hours=1)
しかし、これは実際には何もしません:
0 2013-03-01 00:00:00
1 2013-02-28 23:00:00
2 2013-02-28 22:00:00
3 2013-02-28 21:00:00
...
1) df-np.timedelta が機能しなくなった理由、および 2) 理解リストのバージョンがまだ機能している理由は何ですか? 助けてくれてありがとう。
参考までに、私は Numpy 1.6.2 を使用しており、先に述べたように、最近 Pandas 0.9 から 0.11 にアップグレードしました