Я импортировал нижеприведенные пакеты из блокнота 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) потому что я никогда не работал с данными временных рядов, а временные ряды действительно сбивают с толку .. Благодарим Вас за совет !!