从python中带有时间戳的列中选择日期范围

时间:2011-11-13 17:48:37

标签: python

我有一个包含许多列的文件以及几个具有'日期'的列(比如20,27,53列是日期列)。 从特定列(比如53),我想选择特定月份中的所有日期(比如说可能)。 问题是日期的格式是“5/01/2011 12:53”。我的意思是日期也包括时间。

我尝试了几种方法,但提示点在当时。

         >>> def daterange(start_date, end_date):
             ...     for n in range((end_date - start_date).days):
             ...         may_inav_writer.writerow()
             ... 
         >>> daterange(5/01/2011 00:00, 6/01/2011 00:00)
         File "<stdin>", line 1
         daterange(5/01/2011 00:00, 6/01/2011 00:00)
                              ^

SyntaxError:语法无效

这是我遇到的错误。

伙计们......需要你的帮助!

2 个答案:

答案 0 :(得分:0)

看起来您正在尝试使用看起来像没有引号或任何内容的日期的参数来调用daterange()函数。这不是大多数编程语言的工作方式。尝试说datetime.strptime("5/01/2011 00:00", "%m/%d/%Y %H:%M")之类的东西,换句话说,指定您希望解析的输入格式,并将其传递给您的函数。

答案 1 :(得分:0)

它是否包含时间不是一个有效的语法(或者更确切地说,它没有做你认为它正在做的事情)。您需要先将其解析为datetime对象。

def daterange(start_date, end_date):
    date_format = '%m/%d/%Y %H:%M'
    start_date  = datetime.datetime.strptime(start_date, date_format)
    end_date    = datetime.datetime.strptime(end_date, date_format)
    # ...

daterange('5/01/2011 00:00', '6/01/2011 00:00')