2017-03-03 7 views
-1

私は以下のコードで奇妙な状況に陥っています。ご覧のとおり、以下のコードに示されている値よりも値小さいtimestamp_dayと何もデータがないように思える:datatime列に基づいてデータフレームをフィルタリングする際の異常な動作

print myDF.shape 
> (447609, 20) 

print myDF[myDF['timestamp_day'] < timedelta(2014, 7, 26, 2, 0)].shape 
> (0, 20) 

しかし、私はtimestamp_day(下記参照)の最小値をチェックするとき、私は見ます上記のコードはいくつかの行を返す必要があります。

myDF['timestamp_day'].min() 
> datetime.datetime(2014, 5, 21, 12, 0) 

誰にでもこのような現象が発生しているのですか?

+2

hmm、 'timedelta'と' datetime'オブジェクトは同じではありません。 'datetimeからのインポートdatetime、timedelta; d =日時(1970,1,1); t = timedelta(1970,1,1);印刷(d == t); #False' – DeepSpace

答えて

1

不等式が適切かどうかをテストするためにいくつかの練習値を抜き出してみてください。

datetime.datetime(2014, 5, 21, 12, 0) < timedelta(2014, 7, 26, 2, 0) 
TypeError: unorderable types: datetime.datetime() < datetime.timedelta() 

比較するためにdatetime.datetimeを試してみましたか?

datetime.datetime(2014, 5, 21, 12, 0) < datetime.datetime(2014, 7, 26, 2, 0) 
True 
関連する問題