Как разделить две заданные метки времени (начало, конец) на серию дней в python - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь получить дневной интервал между двумя заданными временными метками. У меня есть три столбца:

id, start_date и end_date, я пытаюсь добиться следующего.

In [1]: id = 12
        start_dt = '4/3/2020  10:19:55 AM'
        end_dt = '4/10/2020  1:23:26 PM'


        df = pd.DataFrame([[id,start_dt,end_dt]], columns = ['id', 'start_dt', 'end_dt'])
        df['start_dt'] = pd.to_datetime(df['start_dt'])
        df['end_dt'] = pd.to_datetime(df['end_dt'])
        df

Out [1]:
id      start_dt                  end_dt
12  4/3/2020  10:19:55 AM  4/10/2020  1:23:26 PM


In [2]: pd.date_range(start=df['start_dt'], end=df['end_dt'], freq='D')

Out [2]:

          DatetimeIndex(['2020-04-04 10:19:55', '2020-04-05 10:19:55',
           '2020-04-06 10:19:55', '2020-04-07 10:19:55',
           '2020-04-08 10:19:55', '2020-04-09 10:19:55',
           '2020-04-10 10:19:55'],
          dtype='datetime64[ns]', freq='D')

date_range разбивает мои данные по дням, но не разбивает их по верху день (11:59:59 PM).

Желаемый результат:

id       start_dt                  end_dt
12  4/3/2020  10:19:55 AM   4/3/2020  11:59:59 PM
12  4/4/2020  12:00:00 AM   4/4/2020  11:59:59 PM
12  4/5/2020  12:00:00 AM   4/5/2020  11:59:59 PM
12  4/6/2020  12:00:00 AM   4/6/2020  11:59:59 PM
12  4/7/2020  12:00:00 AM   4/7/2020  11:59:59 PM
12  4/8/2020  12:00:00 AM   4/8/2020  11:59:59 PM
12  4/9/2020  12:00:00 AM   4/9/2020  11:59:59 PM
12  4/10/2020  12:00:00 AM  4/10/2020  1:23:26 PM
...