私はパンダのデータフレームの行をIDでグループ化し、max/minのdatetimes(時間帯)を選択しようとしました。これはパンダ0.18.1とnumpy 1.11.1です(以前の記事では、同様の問題が明らかにパンダ0.15で修正されていました)。私がしようとした場合パンダのgroupby/aggを使用した奇妙なタイムゾーンの動作
具体的には、:
print orders.groupby('OrderID')['start_time'].agg(np.min).iloc[:5]
は私が手:生データは、午前8時(米国/東)に時間が近づいていた
OrderID
O161101XVS100000044 2016-11-01 12:03:12.920000-04:00
O161101XVS100000047 2016-11-01 12:03:36.693000-04:00
O161101XVS100000098 2016-11-01 12:09:08.330000-04:00
O161101XVS100000122 2016-11-01 12:09:59.950000-04:00
O161101XVS100000152 2016-11-01 12:11:29.790000-04:00
Name: start_time, dtype: datetime64[ns, US/Eastern]
。言い換えれば、それは東部時間であり、UTC-4オフセットを持っていますが、UTC時間に戻っています。
しかし、私は代わりにしようとした場合:
print orders.groupby('OrderID')['start_time'].agg(lambda x: np.min(x)).iloc[:5]
私は今取得:私が意図した動作である
OrderID
O161101XVS100000044 2016-11-01 08:03:12.920000-04:00
O161101XVS100000047 2016-11-01 08:03:36.693000-04:00
O161101XVS100000098 2016-11-01 08:09:08.330000-04:00
O161101XVS100000122 2016-11-01 08:09:59.950000-04:00
O161101XVS100000152 2016-11-01 08:11:29.790000-04:00
Name: start_time, dtype: datetime64[ns, US/Eastern]
。この2番目の方法は大幅に遅く、2つの方法で同じ結果が得られると仮定しています。
であるべきバグのように見え、これはhttps://github.com/pandas-に既に報告されている場合は、確認することができますdev/pandas/issuesとそれ以外の場合は、新しい問題を投稿 – EdChum