Python / Pandas按分组列比较行并更新值

时间:2018-06-19 18:38:51

标签: python pandas

我有以下数据框,该数据框是所有先前竞赛者和相关教练的比赛的列表。请注意,培训师会随着时间而改变。

      Date       R   H   Fin  Trainer 
0     11182017   1   1   2     1      
1     12182017   2   1   1     1      
2     01182018   5   1   6     2      
3     02182018   8   1   2     2      
4     01182018   1   2   1     2     
5     02182018   3   2   5     3      
6     03182018   3   2   2     3      

我想按日期和时间将每个种族与上一个种族进行比较,确定“ Trainer”何时更改,然后指出该教练有多少次

下面的结果示例

      Date       R   H   Fin  Trainer #
0     11182017   1   1   2     1      1
1     12182017   2   1   1     1      2
2     01182018   5   1   6     2      1
3     02182018   8   1   2     2      2
4     01182018   1   2   1     2      1
5     02182018   3   2   5     3      1
6     03182018   3   2   2     3      2

感谢您的帮助和建议

1 个答案:

答案 0 :(得分:1)

您可以使用cumcount

In [11]: df.groupby(["H", "Trainer"]).cumcount() + 1
Out[11]:
0    1
1    2
2    1
3    2
4    1
5    1
6    2
dtype: int64