Положение:
Вычисление количества часов в будний день и количества часов в выходные / праздничные дни за определенный промежуток времени.
Данные извлекаются из файла Excel и помещаются в кадр данных с помощью панд.
Example of Dataframe Input:
Start End
1 06-09-2018 02:00:00 08-09-2018 01:00:00
2 08-09-2018 02:00:00 08-09-2018 04:00:00
3 08-09-2018 02:00:00 10-09-2018 01:00:00
Example of Dataframe Output at the end:
Start End WD/WE
1 06-09-2018 02:00:00 08-09-2018 01:00:00 WD
2 08-09-2018 02:00:00 08-09-2018 04:00:00 WE
3 08-09-2018 02:00:00 10-09-2018 01:00:00 WE
Начиная с 1-го ряда, используя код, мы рассчитываем количество часов, которые лежат в будний день и выходные / праздничные дни. Подсчитав вручную, мы получим 46 часов в будние дни и 1 выходной / праздничные часы. Таким образом, часы выходных / праздничных дней <= часы дня недели, таким образом возвращая строку "WD" </p>
В настоящее время я пытаюсь использовать рабочие дни, панды, дату и время, openpyxl.
data_check = pd.read_excel('C:\\excel path.xlsx',header=0)
df_check = pd.DataFrame(data_check,columns=['Start Date and Time','End Date and Time'])
#Creating dataframe
df_check['Start Date and Time'] = pd.to_datetime(df_check['Start Date and Time'])
df_check['End Date and Time'] = pd.to_datetime(df_check['End Date and Time'])
#Simplifying dataframe names
df_s= pd.DataFrame({'Start Date and Time': df_check['Start Date and Time']})
df_u= pd.DataFrame({'End Date and Time': df_check['End Date and Time']})
#Indicating holidays
holidays= ['22-08-2018','06-11-2018','25-12-2018']
Я понимаю, что мой код немного грязный, так как я новичок в Python и все еще пытаюсь заставить вещи работать.
Я застрял после попытки написать код для запуска через мой фрейм данных, чтобы вычислить нет. в будние часы и нет. выходных / праздничных часов.
Я искал и читал о том, как определить, является ли день рабочим днем или выходным / праздничным днем, но я понятия не имею, как запустить его через мой фрейм данных.
Надеюсь, кто-то сможет помочь.
Протестировано до сих пор:
Код1: не работает. AttributeError: объект DataFrame не имеет атрибута calendar. Возможно, я неправильно набираю код.
df_wdwe1 = np.where(df_s.calendar.weekday(year, month, day)>=6, "Weekends","Weekdays")