Python / Pandas / Timeseries: Как определить время начала работы / время окончания работы и извлечь рабочий час? - PullRequest
0 голосов
/ 31 марта 2020

Я импортировал нижеприведенные пакеты из блокнота jupyter, чтобы извлечь рабочий час.

import pandas as pd
import numpy as np
import datetime as d
import time
df = pd.read_excel(rawdata)

Необработанные данные выглядят так, как показано ниже: это столбец Excel

╔═════════════════════╦═════════════════════╗  
║ Start Date Time     ║  End Date Time      ║  
╠═════════════════════╬═════════════════════╣  
║ 2020-02-18 16:00:00 ║ 2020-02-08 21:00:00 ║  
║ 2020-02-19 07:00:00 ║ 2020-02-19 12:00:00 ║  
║ 2020-02-20 12:00:00 ║ 2020-02-21 14:00:00 ║  
╚═════════════════════╩═════════════════════╝  

Поэтому я изменил типы. .

  • Дата начала, чтобы рассмотреть день недели (при исполнении служебных обязанностей) / выходные дни (при исполнении служебных обязанностей) / национальный праздник (при исполнении служебных обязанностей)
  • день начала
  • время начала до извлекать рабочий час / время
  • То же самое для даты окончания

    df['Start Date and Time'] = pd.to_datetime(df['Start Date and Time'])
    df['start_date'] = df['Start Date and Time'].dt.date
    df['start_day'] = df['Start Date and Time'].dt.weekday_name
    df['start_time'] = df['Start Date and Time'].dt.time
    

Я могу просто вычесть df ['Дата и время окончания'] - df ['Дата и время начала'] для net продолжительности, но мой вопрос, как применить временные рамки для разделения официального рабочего времени и времени.

Официальный рабочий час: 09:00 - 06:00

1025 * Мой план состоит в том, чтобы (1) просто вычесть Конец - Время начала (2) Посмотрите, произошло ли это в 09:00 ~ 06:00 (3) Вычислить (1) - (2) = В течение времени

Ищу ваш совет для (2) потому что я никогда не работал с данными временных рядов, а временные ряды действительно сбивают с толку .. Благодарим Вас за совет !!

...