Я столкнулся с каким-то нечетным поведением, пытающимся сгруппировать строки с помощью фрейма данных pandas по идентификатору, а затем выбирая max/min datetimes (w/timezones). Это с pandas 0.18.1 и numpy 1.11.1 (я видел в предыдущих сообщениях аналогичную проблему, по-видимому, фиксировал w/pandas 0,15).Нечетное поведение часового пояса с использованием groupby/agg in pandas
В частности, если я стараюсь:
print orders.groupby('OrderID')['start_time'].agg(np.min).iloc[:5]
я получаю:
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]
Где необработанные данные были раз ближе к 8 утра (США/Восточной). Другими словами, он вернулся в UTC, хотя он говорит, что это восточные времена, и имеет смещение UTC-4.
Но если я вместо того, чтобы попробовать:
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]
который является поведение я предполагал. Этот второй метод значительно медленнее, и я предположил бы, что два подхода приведут к одинаковым результатам ...
выглядит как ошибка может проверить, если это было сообщено уже https://github.com/pandas- dev/pandas/issues, а если нет, опубликуйте новый номер – EdChum