0

我需要的是从“2014-03”到“2019-01”期间每个月从开始计算每个模块的一些操作。

  month_range = ['2014-03', '2014-04', '2014-05', 
                 '2014-06', '2014-07', '2018-10', 
                 '2018-11', '2018-12', '2019-01']

  df = pd.DataFrame({'action':['done','in_work', 'done', 
                               'fail','in_work', 'done'], 
                     'module':['B1','B2','B1', 
                                'B3','B1','B2'],
                     'start': ['2014-06','2014-07','2014-07',
                               '2014-10','2018-09','2018-12'], 
                     'finish':['2014-06', NaT, '2018-10', 
                               '2014-10', NaT, '2019-02']
                          }, 
                     columns = ['action','module', 
                                'start', 'finish'])

A huge limitation. 一个动作可以从一个月到另一个执行,并在一个日期范围内按每个月计算。

例如,如果模块仍处于“工作中”且操作没有结束 (NaT),则应按每个月从开始日期到最大日期范围内的日期计算。

计算后预计会有这样的形式:

               B1 B2 B3
    1 2014-03  0   0  0
    2 2014-04  0   0  0
    3 2014-05  0   0  0
    4 2014-06  1   0  0
    5 2014-07  1   0  0

如果有人知道任何解决方案?

4

0 回答 0