Я хочу выяснить следующее: учитывая дату ( datetime
объект), каков соответствующий день недели?
Например, воскресенье - первый день, понедельник - второй день и т. Д.
И затем, если на входе что-то вроде сегодняшней даты.
пример
>>> today = datetime.datetime(2017, 10, 20)
>>> today.get_weekday() # what I look for
Выход может быть 6
(так как это пятница)
int(datetime.datetime.today().strftime('%w'))
Если вы хотите, чтобы дата была на английском:
источник
my_date.strftime('%A')
Если вы хотите, чтобы дата была на английском:
Подробнее: https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
источник
Используйте
date.weekday()
илиdate.isoweekday()
.источник
datetime
объекта (неdate
объекта), я хотел бы отметить, что вdatetime
классе используются те же методыweekday()
иisoweekday()
методы.Я решил это для вопроса CodeChef .
источник
Решение без импорта для дат после 1700/1/1
источник
Это решение, если дата является объектом datetime.
источник
Если у вас есть даты в виде строки, это может быть проще сделать с помощью временной метки панд
Вывод:
источник
Библиотека datetime иногда выдает ошибки с помощью strptime (), поэтому я переключился на библиотеку dateutil. Вот пример того, как вы можете его использовать:
Вывод, который вы получите от этого
'Mon'
. Если вы хотите вывод как «понедельник», используйте следующее:Это сработало для меня довольно быстро. У меня были проблемы при использовании библиотеки datetime, потому что я хотел сохранить имя дня недели вместо номера дня недели, а формат от использования библиотеки datetime вызывал проблемы. Если у вас нет проблем с этим, отлично! Если да, то вы наверняка пойдете на это, так как он имеет более простой синтаксис. Надеюсь это поможет.
источник
Предполагая, что вам даны день, месяц и год, вы можете сделать:
источник
strftime("%A")
вместоweekday()
Допустим, у вас есть timeStamp: строковая переменная, ГГГГ-ММ-ДД ЧЧ: ММ: СС
Шаг 1 : преобразовать его в функцию dateTime с кодом удара ...
Шаг 2 : Теперь вы можете извлечь всю необходимую функцию, как показано ниже, которая создаст новый столбец для каждого из часов, месяцев, дней недели, года и даты.
источник
Если у вас есть причина избегать использования модуля datetime, то эта функция будет работать.
Примечание. Предполагается, что переход от юлианского к григорианскому календарю произошел в 1582 году. Если это не так для интересующего вас календаря, измените строку, если год> 1582: соответственно.
источник
fg
иfj
внутри, в условные выражения, чтобы избежать ненужных вычислений.Если вы не полностью зависите от
datetime
модуля,calendar
возможно, будет лучшей альтернативой. Это, например, предоставит вам коды дня:И это даст вам сам день
Или в стиле python, как один вкладыш:
источник
Мы можем воспользоваться помощью панд:
Как уже упоминалось выше в задаче у нас есть:
Если выполнить эту строку в блокноте jupyter, мы получим следующий вывод:
Используя weekday () и weekday_name:
Если вы хотите, чтобы рабочие дни были в формате целых чисел, используйте:
Выход будет:
И если вы хотите использовать его в качестве названия дня, например, воскресенья, понедельника, пятницы и т. Д., Вы можете использовать:
Выход будет:
'Friday'
Если в столбце данных Pandas имеется столбец дат, тогда:
Теперь предположим, что если у вас есть фрейм данных pandas со столбцом даты, например: pdExampleDataFrame ['Dates']. Head (5)
Теперь, если мы хотим узнать название дня недели, например, понедельник, вторник и т. Д., Мы можем использовать
.weekday_name
следующее:вывод будет:
И если мы хотим получить целое число дня недели из этого столбца Даты, тогда мы можем использовать:
Вывод будет выглядеть так:
источник
Образец выхода
источник
это должно дать вам ваш номер реального дня - 1 = воскресенье, 2 = понедельник и т.д ...
источник
+1
? Принято считать, что недельное нумерация в python начинается в sundat как 0, а в понедельник - 1.Чтобы получить воскресенье с 1 по субботу как 7, это самое простое решение вашего вопроса:
Все они:
Вывод:
источник
вот как конвертировать список дат в дату
источник
Использование модуля Canlendar
источник
Вот моя реализация Python3.
источник
Ниже приведен код для ввода даты в формате ДД-ММ-ГГГГ. Вы можете изменить формат ввода, изменив порядок «% d-% m-% Y», а также изменив разделитель.
источник
используйте этот код:
источник
импортировать numpy как np
дата определения (df):
источник