как разделить запись на несколько записей на основе даты начала и окончания р


Я бы попробовала объяснить мою проблему, взяв пример данных

ID      Region      Start_Date     End_Date 1       Reg1       27/1/2017      27/1/2017 2       Reg1       27/2/2017      05/3/2017 1       Reg1       24/3/2017      25/5/2017

Теперь я хочу результат, чтобы быть что-то вроде этого:

ID      Region      n_Start_Date   n_End_Date 1       Reg1       27/1/2017      27/1/2017 2       Reg2       27/2/2017      28/2/2017 2       Reg2       01/3/2017      05/3/2017 1       Reg1       24/3/2017      31/3/2017 1       Reg1       01/4/2017      30/4/2017 1       Reg1       01/5/2017      31/5/2017

Нынешний подход, который я подумываю о реализации:

Я создал таблицу данных, которая содержит 14 записей с каждым месяцем начала и дата окончания на 2017 год и 2018 как:

Year    Month   Start of Month  End of Month2017      1        1/1/2017      31/1/20172017      2        1/2/2017      28/2/20172017      3        1/3/2017      31/3/20172017      4        1/4/2017      30/4/20172017      5        1/5/2017      31/5/20172017      6        1/6/2017      30/6/20172017      7        1/7/2017      31/7/20172017      8        1/8/2017      31/8/20172017      9        1/9/2017      30/9/20172017      10       1/10/2017     31/10/20172017      11       1/11/2017     30/11/20172017      12       1/12/2017     31/12/20172018      1        2/12/2017     31/1/20182018      2        3/12/2017     28/2/2018

Я сделал новую рубрику на год и месяц:

  • If the start date year, Month are same as that of end date year, month then next same start and end date would be copied to the new dataframe like

    ID      Region   Start_Date     End_Date   n_Start_Date   n_End_Date
    1       Reg1      27/1/2017     27/1/2017   27/1/2017      27/1/2017
    
  • If the Start date year, Month are not same then it appends

    ID      Region   Start_Date     End_Date   n_Start_Date   n_End_Date
    2       Reg2      27/2/2017    05/3/2017    27/2/2017      28/2/2017
    2       Reg2      27/2/2017    05/3/2017    01/3/2017      05/3/2017
    
  • link

    Я не мог найти похожие вопросы, я прошел через это , но не полезно.

    если есть лучший подход, дайте мне знать.