我有一个带数据的数据框(从数据库中提取)
CompanyID CustomerID Date SomeData
1 1 1.1.2015 ...
1 1 3.5.2015 ...
1 1 1.1.2016 ...
1 2 1.4.2012 ...
1 2 1.5.2017 ...
2 1 1.3.2000 ...
... ... ... ...
我想要做的是根据CompanyId,CustomerID和Date应用索引。但我真的不希望dateindex成为日期,而是希望它成为一个计数器,给出日期出现的顺序。
CompanyID CustomerID DateID Date SomeData
1 1 1 1.1.2015 ...
2 3.5.2015 ...
3 1.1.2016 ...
2 1 1.4.2012 ...
2 1.5.2017 ...
2 1 1 1.3.2000 ...
... ... ... ... ...
我确实理解这可以通过数据帧迭代实现。
然而,问题是,这可以通过在标准“set_index”方法(或其他一些单行程序)中应用额外的语法来实现吗?
df.set_index(['CompanyID', 'CustomerID', 'Date'])
此外,作为一个副问题,(并且我知道这可以通过额外的编码实现),是否有一种方法来标记每个分组的最后一个(即最高日期),同时应用所提到的指数(或其他一些单线)。比如像这样
CompanyID CustomerID DateID IsLast Date SomeData
1 1 1 False 1.1.2015 ...
2 False 3.5.2015 ...
3 True 1.1.2016 ...
2 1 False 1.4.2012 ...
2 True 1.5.2017 ...
2 1 1 False 1.3.2000 ...
... ... ... ... ... ...