我想了解以下内容:给定一个日期(datetime对象),一周中对应的日期是什么?
例如,星期天是第一天,星期一是第二天。。等等
然后如果输入的内容类似于今天的日期。
实例
>>> today = datetime.datetime(2017, 10, 20)
>>> today.get_weekday() # what I look for
产量可能是6(因为现在是星期五)
我想了解以下内容:给定一个日期(datetime对象),一周中对应的日期是什么?
例如,星期天是第一天,星期一是第二天。。等等
然后如果输入的内容类似于今天的日期。
实例
>>> today = datetime.datetime(2017, 10, 20)
>>> today.get_weekday() # what I look for
产量可能是6(因为现在是星期五)
当前回答
假设您有timeStamp:字符串变量YYYY-MM-DD HH:MM:SS
步骤1:使用blow代码将其转换为dateTime函数。。。
df['timeStamp'] = pd.to_datetime(df['timeStamp'])
步骤2:现在您可以提取所有必需的功能,如下所示,这将为每个字段创建新的列-小时、月、星期、年、日期
df['Hour'] = df['timeStamp'].apply(lambda time: time.hour)
df['Month'] = df['timeStamp'].apply(lambda time: time.month)
df['Day of Week'] = df['timeStamp'].apply(lambda time: time.dayofweek)
df['Year'] = df['timeStamp'].apply(lambda t: t.year)
df['Date'] = df['timeStamp'].apply(lambda t: t.day)
其他回答
如果日期是datetime对象,这是一个解决方案。
import datetime
def dow(date):
days=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
dayNumber=date.weekday()
print days[dayNumber]
datetime库有时会出现strptime()错误,所以我切换到dateutil库。下面是一个如何使用它的示例:
from dateutil import parser
parser.parse('January 11, 2010').strftime("%a")
您从中获得的输出是“Mon”。如果希望输出为“星期一”,请使用以下命令:
parser.parse('January 11, 2010').strftime("%A")
这对我很快奏效。我在使用日期时间库时遇到了问题,因为我想存储工作日名称而不是工作日编号,而使用日期时间的格式导致了问题。如果你对此没有问题,那太好了!如果你是这样的话,你可以明确地这样做,因为它的语法也更简单。希望这有帮助。
如果您是中国用户,您可以使用此软件包:https://github.com/LKI/chinese-calendar
import datetime
# 判断 2018年4月30号 是不是节假日
from chinese_calendar import is_holiday, is_workday
april_last = datetime.date(2018, 4, 30)
assert is_workday(april_last) is False
assert is_holiday(april_last) is True
# 或者在判断的同时,获取节日名
import chinese_calendar as calendar # 也可以这样 import
on_holiday, holiday_name = calendar.get_holiday_detail(april_last)
assert on_holiday is True
assert holiday_name == calendar.Holiday.labour_day.value
# 还能判断法定节假日是不是调休
import chinese_calendar
assert chinese_calendar.is_in_lieu(datetime.date(2006, 2, 1)) is False
assert chinese_calendar.is_in_lieu(datetime.date(2006, 2, 2)) is True
如果您不完全依赖datetime模块,日历可能是更好的选择。例如,这将为您提供日期代码:
calendar.weekday(2017,12,22);
这将给你一天:
days = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
days[calendar.weekday(2017,12,22)]
或者以python的风格,作为一行:
["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"][calendar.weekday(2017,12,22)]
当星期一为0,星期日为6时,使用date.weekday()
or
date.isoweekday(),当周一是1,周日是7