2011-11-13 6 views
0

「日付」を持つ列が数多くあるファイルがあります(たとえば、20,27,53は列のw番目の日付です)。 特定の列(例えば53)から、特定の月のすべての日付(may)を選択したいと思います。 問題は、日付の形式が「5/01/2011 12:53」です。私は日付にも時間が含まれていることを意味します。Pythonのタイムスタンプ付きの列から日付の範囲を選択

私はいくつかの方法を試しましたが、その時点では迅速なポイントがありました。

  >>> 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:無効な構文

これは私が持っているエラーです。

男...あなたの助けが必要です!

答えて

0

daterange()関数を引用符などのない日付のような引数で呼び出そうとしているようです。これはほとんどのプログラミング言語の仕組みではありません。 datetime.strptime("5/01/2011 00:00", "%m/%d/%Y %H:%M")のようなものを言います。言い換えれば、解析すると予想される入力形式を指定し、それを関数に渡します。

+0

私のためにパターンマッチングが機能しました。おかげでジョンとここに猫++ は、Pythonのコードです: インポートcsvReaderで..行のための を書き込むファイルと新しいファイルをインポート#after 再: \t試し: \t \t場合LEN(再。 findAll(R "5/[0-9] + 2011 /"、行[52])): \t \t \t csvWriter.writerow(行)他 \t \t: \t \t \tが を続行10を除き、 –

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') 
関連する問題