Преобразование строки даты в День недели
У меня есть строки даты, подобные этому:
'January 11, 2010'
и мне нужна функция, которая возвращает день недели, например
'mon', or 'monday'
и т.д..
Я не могу найти это нигде в справке Python.
Кто угодно? Спасибо.
Ответы
Ответ 1
Возможно, вы захотите использовать strptime and strftime
методы из datetime
:
>>> import datetime
>>> datetime.datetime.strptime('January 11, 2010', '%B %d, %Y').strftime('%A')
'Monday'
или для 'Mon'
:
>>> datetime.datetime.strptime('January 11, 2010', '%B %d, %Y').strftime('%a')
'Mon'
Ответ 2
использовать date.weekday()
Возвратите день недели как целое число, где в понедельник 0, а воскресенье - 6.
http://docs.python.org/2/library/datetime.html#datetime.date.weekday
Ответ 3
Может использоваться сторонний парсер, например dateutil.
И код для вашего оригинального вопроса:
>>> from dateutil import parser
>>> parser.parse('January 11, 2010').strftime("%a")
'Mon'
>>> parser.parse('January 11, 2010').strftime("%A")
'Monday'
Ответ 4
>>> import time
>>> dateStr = 'January 11, 2010'
>>> timestamp = time.strptime(dateStr, '%B %d, %Y')
>>> timestamp
time.struct_time(tm_year=2010, tm_mon=1, tm_mday=11, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=11, tm_isdst=-1)
Ответ 5
import time
time.strftime('%A')
Ответ 6
Я думаю, что самый быстрый способ сделать это, как показано ниже:
df[Date_Column].dt.weekday_name