我们如何将01-01-2011 19:00转换为工作日,如Mon,Tue ..在python中?

时间:2015-05-22 09:10:06

标签: python datetime

我正在研究一个pandas数据框,我有一个日期时间列,现在我必须将它转换为Weekdays.How我可以这样做吗?

2 个答案:

答案 0 :(得分:6)

您可能想要使用日期时间模块。

来自strptime and strftime模块的

datetime方法:

In [1]: import datetime
In [4]: datetime.datetime.strptime('01-01-2011 19:00','%d-%m-%Y %H:%M').strftime('%A')
Out[4]: 'Saturday'

答案 1 :(得分:2)

您可以使用datetime.strftime()来解析日期,然后使用datetime.weekday()将工作日作为整数:

示例:

from datetime import datetime

d = datetime.strptime("01-01-2011 19:00", "%d-%m-%Y %H:%S")
d.weekday()  # 5

现在,如果我们查看datetime.weekday()的文档,我们可以看到:

  

date.weekday()

     

以整数形式返回星期几   星期一是0,星期日是6。

     

例如,日期(2002年,12月4日).weekday()== 2,星期三。

     

另见isoweekday()。

知道这一点我们可以编写一个简单的函数:

weekdays = {
    0: "Monday",
    1: "Tuesday",
    2: "Wednesday",
    3: "Thursday",
    4: "Friday",
    5: "Saturday",
    6: "Sunday",
}

def weekday(dt):
    return weekdays[dt.weekday()]

现在我们可以简单地在给定的weekday()对象实例上调用datetime()

d = datetime.strftime(">>> d = datetime.strptime("01-01-2011 19:00", "%d-%m-%Y %H:%S")
weekday(d)  # Saturday