1

なんでだろう

>>> pandas.Timestamp(dt.datetime(2009,1,6)).week

>>> datetime.datetime(2009,1,6).isocalendar()[1]

同じ結果を出さないでください。

4

1 に答える 1

6

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

そのため、多くの場合、違いがあります。

于 2012-09-30T15:43:03.507 に答える