我的csv文件有一列,其中包含周一至周日的星期几。将这些转换为日期时间格式的最佳方法是什么?我尝试过:
datetime.strptime(day, '%A')
但是得到错误: 时间数据与格式“%A”不匹配
知道我在做什么错吗?!
答案 0 :(得分:0)
import datetime
now = datetime.datetime.now()
print(now.strftime("%A"))
您可以尝试这个兄弟,我希望它对您有用
答案 1 :(得分:0)
如果只有日期名称,则必须选择一个为期7天的开始日期的基准日期(例如今天的日期)。由此,您可以构建一个字典,将日期名称与实际日期进行映射,然后使用它来转换字段值:
# setup ...
from datetime import *
baseDate = datetime.today() # current day or some other date (e.g. last monday)
dateOfDay = { dt.strftime("%A"):dt for dow in range(7) for dt in [baseDate+timedelta(dow)] }
# to obtain the date, simply access the dictionary with the day name
dateOfDay["Monday"]
# print dates for each possible day
for day in dateOfDay:
print(day,dateOfDay[day].strftime("%x"))
如果您的数据跨越多个星期并且按时间顺序排列,则可以随时进行更新。这可以通过检查当天的日期是否低于上一次输入的日期来实现。这表示您需要将基准日期提前7天(baseDate += timedelta(7)
),然后从该新日期重新计算dateOfDay字典。然后使用新的映射获取日期并恢复数据遍历。
请注意,仅当您两次输入数据之间的间隔时间不超过6天或者您有其他方法确定数据中的周界时,此方法才有效。