2017-11-10 2 views
0

私は2013-1-1から2017-1-1までの日付範囲を持っています。最初の日からの日数として表現したいと思います。日付を数値に変換する方法は、数字が効率的な方法でPythonの最初の日付からどれくらい離れているかを表しますか?

例:2013年1月1日は1、2013年1月2日は2になりますでしょう...メモリを節約しようとしている2017年1月1日

のすべての方法も重要です。

今、私の日付はdatetimeインデックスにあり、私は.dayofyearメソッドしか持っていません。それは私を助けません。

私はapply()関数を.to_ordinalと一緒に使ってみましたが、これは多くのメモリを取り込みます。オブジェクトを返すと、.dayofyearのようなメソッドがint64のメモリに保存されるので、おかげ

私は2013

答えて

0

datetime.timedeltaので、別の日に得られた値をプロットしようとしているあなたは、彼らが離れているどのように多くの日数を見つけるために、その.daysプロパティを使用することができ、日付の間の違いを表しています。

first = datetime.datetime(2013, 1, 1) 
second = datetime.datetime(2017, 1, 1) 

delta = second - first 

print(second, "is day", delta.days + 1) 

delta = first - first 

print(first, "is day", delta.days + 1) 

あなたがこのロットを使用する場合は、関数にそれを置くことができます:

def day_number(from_date): 
    def inner(to_date): 
     delta = to_date - from_date 
     return delta.days + 1 
    return inner 

使用法:

>>> since_2013 = day_number(datetime.datetime(2013, 1, 1)) 
>>> since_2013(datetime.datetime(2017, 1, 1)) 
1462 
>>> since_2013(datetime.datetime(2013, 1, 1)) 
1 
+0

おかげで、私はそれを試してみます –

関連する問題