1、groupby之后的max和first
2、关于排序:
方法一:根据start_time排序
df_sms.groupby('uid', group_keys=False).apply(lambda x: x.sort_values('start_time')).groupby(
'uid').first().reset_index()[['uid', 'day']]
方法二:根据day排序
df_sms.groupby('uid', group_keys=False).apply(lambda x: x.sort_values('day')).groupby(
'uid').first().reset_index()[['uid', 'day']]
如果时间周期为2021/11/3 22:33:03(day为3)— 2021/12/16 18:29:32(day为16),如果按照day排序,最小的是1(12月1日),最大的30(11月30日),此时取不到时间区间的两端。
3、关于时间的处理
当得到的时间已经转成pd.to_datetime后,若要做两列时间的差值:
(density['end_time'] - density['start_time']).astype('timedelta64[D]')
'timedelta64[D]' 转换为天
'timedelta64[h]' 转换为小时
4、复合索引取值
5、nunpy:hstack