팬더 데이터 프레임의 행을 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]
합니다. 이 두 번째 방법은 매우 느리고 두 가지 방법으로 동일한 결과를 얻을 수 있다고 가정합니다.
에 있어야 당신이 확인할 수 있습니다 버그처럼 보인다 dev/pandas/issues 및 그렇지 않은 경우, 새로운 호를 게시하십시오 – EdChum