如何解决计算熊猫timedeltas的扩展排名
我有一个数据框,其中有一列计时赛的比赛时间定义为timedelta。从第一个启动程序开始,按每个竞争对手的原始开始时间对行进行排序。我想计算该竞争对手越过分界线的那一刻的排名。我希望输出看起来像这个小玩具示例中的expanding_rank
列。尽管Rider2最终排名第4,但在目前通过拆分点时,他们排名第二,而Rider1最初排名第1,因为他们是通过拆分点的第一个骑手,但最终排名第3。
name split_time expanding_rank
Rider1 00:00:48.857987136 1
Rider2 00:00:49.297997592 2
Rider3 00:00:47.381634176 1
Rider4 00:00:49.409940252 4
Rider5 00:00:47.678197043 2
为此,我想我需要一个扩展的窗口计算,该计算将所有拆分时间排列到当前行并包括当前行。我以为我可以使用df['split_time'].expanding(1).rank()
来做到这一点,但是看来expanding
函数没有rank
选项。我对应该如何处理感到困惑。
我尝试使用df.column_name.expanding.apply()
语法修改this answer,但收到此错误:ops for Expanding for this dtype timedelta64[ns] are not implemented
有人有什么主意吗?!
解决方法
您是否尝试过将索引重置为split_time?
df.set_index('split_time')
从这里查找您的错误消息后,我有了这个主意
Pandas Rolling Window - datetime64[ns] are not implemented
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。