在Python中,根据日期时间创建计数器索引

时间:2017-07-12 06:55:02

标签: python pandas dataframe indexing

我有一个带数据的数据框(从数据库中提取)

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        ...
      ...        ...      ...      ...         ...        ...  

0 个答案:

没有答案