なんでだろう
>>> pandas.Timestamp(dt.datetime(2009,1,6)).week
と
>>> datetime.datetime(2009,1,6).isocalendar()[1]
同じ結果を出さないでください。
0
まず、整数をsで始める習慣から抜け出す必要があります。これは、8進数(基数8)の定数として解釈されることを意味し、混乱を招きます。
>>> 10
10
>>> 010
8
彼らが2つの異なる答えを与える理由については、2つの理由があります。
(1)週の数値を比較していません。ドキュメントに記載されているように、isocalendar
「[r] eturn [s]は、ISOの年、週番号、および平日を含む3タプルです。」したがってisocalendar()[2]
、ISOは週ではなく、平日になります。
(2)ISO日付は、予想とは少し異なる方法で定義されます(ここで説明します)。たとえば、最も深刻なケースでは、次のようになります。
>>> dt.datetime(2010,1,1).isocalendar()
(2009, 53, 5)
>>> pd.Timestamp(dt.datetime(2010,1,1)).week
1
そのため、多くの場合、違いがあります。