我遇到了一些奇怪的行为,试图按ID对pandas数据帧的行进行分组,然后选择最大/最小日期时间(w / timezones)。这是大熊猫0.18.1和numpy 1.11.1(我在之前的帖子中看到类似的问题显然是用pandas 0.15修复的。)
具体来说,如果我尝试:
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]
我打算采取哪种行为。第二种方法速度要慢得多,我认为这两种方法会产生相同的结果......
答案 0 :(得分:0)