python 分组排序

a['one']=a.groupby(by = ['首发分拨'])['出中转时间'].rank(ascending=1,method='first') 

按 “首发分拨”这一列分组,按“出中转时间”这列排序, 但rank函数只能用于数值类型,如果“出中转时间”这列是时间序列应该怎么处理?

2021-03-16 18:53:37

rank()函数对其他也能排序吧

你这样写会报错吗?

a.groupby(by = ['首发分拨'])['出中转时间'].rank(ascending=1,method='first') 

参考一下:
https://blog.csdn.net/PY0312/article/details/104012057?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161657983516780264066326%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=161657983516780264066326&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v1~rank_blog_v1-4-104012057.pc_v1_rank_blog_v1&utm_term=%E6%8E%92%E5%BA%8F
 

https://blog.csdn.net/PY0312/article/details/102665729?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161657983516780264066326%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=161657983516780264066326&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v1~rank_blog_v1-5-102665729.pc_v1_rank_blog_v1&utm_term=%E6%8E%92%E5%BA%8F

可以将时间序列转换为时间戳进行排序。

然后用这个时间戳进行比较。

a['timestmp'] = a['出中转时间'].apply(lambda x:time.mktime(time.strptime(x, "%Y-%m-%d %H:%M:%S")))