【发布时间】:2018-09-20 08:43:28
【问题描述】:
我正在处理一些数据,在这里我想获得每匹马最近跑步的排名 (finishing position)(跑步前最多 6 次跑步)。运行日期定义为'race_id'。
有没有办法使用groupby 和agg 但只聚合前6个值?
数据框如下:
finishing_position horse_id race_id
1 K01 2014011
2 K02 2014011
3 M01 2014011
4 K01 2014012
2 K01 2014021
3 K01 2014031
1 M01 2015011
2 K01 2016012
1 K02 2016012
3 M01 2016012
4 J01 2016012
我希望结果是
finishing_position horse_id race_id recent
1 K01 2014011
2 K02 2014011
3 M01 2014011
4 K01 2014012 1
2 K01 2014021 1/4
3 K01 2014031 1/4/2
1 M01 2015011 3
2 K01 2016012 1/4/2/3
1 K02 2016012 2
3 M01 2016012 3/1
4 J01 2016012
【问题讨论】:
标签: python sql pandas pandas-groupby