Pandas Timestamp.fromisocalendar で ISO 週番号から Timestamp オブジェクトを作成

2024-04-02

pandas.Timestamp.fromisocalendar は、ISO 8601 週番号と曜日番号を使用して Timestamp オブジェクトを作成する関数です。

引数

  • year: 西暦
  • week: 年の週番号 (1 から 53)
  • day: 週の曜日番号 (1 から 7)
  • tz: タイムゾーン (省略可能)

返値

Timestamp オブジェクト

from pandas import Timestamp

# 2024年3月21日 (木) を作成
ts = Timestamp.fromisocalendar(2024, 12, 4)

print(ts)
# Output: 2024-03-21 00:00:00+00:00

# タイムゾーンを指定
ts = Timestamp.fromisocalendar(2024, 12, 4, tz="Asia/Tokyo")

print(ts)
# Output: 2024-03-21 09:00:00+09:00

補足

  • ISO 週番号は、1月1日が木曜日の場合は1から始まり、それ以外の場合は53から始まります。
  • 曜日番号は、月曜日が1、日曜日が7です。
  • Timestamp.fromisocalendar は、Python 3.8 以降でのみ使用できます。

Pandas arrays との関係

pandas.Timestamp.fromisocalendar は、pandas.arrays.DatetimeArraypandas.Series などの Pandas データ構造で Timestamp オブジェクトを作成するために使用できます。



Pandas Timestamp.fromisocalendar サンプルコード

範囲の Timestamp オブジェクトを作成

from pandas import Timestamp

# 2024年3月19日から2024年3月25日までの Timestamp オブジェクトのリストを作成
dates = [Timestamp.fromisocalendar(2024, week, day) for week in range(12, 14) for day in range(1, 8)]

print(dates)
# Output:
# [Timestamp('2024-03-19 00:00:00+00:00'), Timestamp('2024-03-20 00:00:00+00:00'),
#  Timestamp('2024-03-21 00:00:00+00:00'), Timestamp('2024-03-22 00:00:00+00:00'),
#  Timestamp('2024-03-23 00:00:00+00:00'), Timestamp('2024-03-24 00:00:00+00:00'),
#  Timestamp('2024-03-25 00:00:00+00:00')]

特定の曜日の Timestamp オブジェクトを作成

from pandas import Timestamp

# 2024年3月21日 (木) を作成
ts = Timestamp.fromisocalendar(2024, 12, 4)

print(ts)
# Output: 2024-03-21 00:00:00+00:00

# 2024年3月25日 (日) を作成
ts = Timestamp.fromisocalendar(2024, 13, 7)

print(ts)
# Output: 2024-03-25 00:00:00+00:00

タイムゾーンを指定

from pandas import Timestamp

# 2024年3月21日 (木) を東京時間 (JST) で作成
ts = Timestamp.fromisocalendar(2024, 12, 4, tz="Asia/Tokyo")

print(ts)
# Output: 2024-03-21 09:00:00+09:00

Pandas Series で使用

from pandas import Series, Timestamp

# 2024年3月19日から2024年3月25日までの Timestamp オブジェクトの Series を作成
dates = Series([Timestamp.fromisocalendar(2024, week, day) for week in range(12, 14) for day in range(1, 8)])

print(dates)
# Output:
# 0   2024-03-19
# 1   2024-03-20
# 2   2024-03-21
# 3   2024-03-22
# 4   2024-03-23
# 5   2024-03-24
# 6   2024-03-25
# dtype: datetime64[ns]


Pandas Timestamp.fromisocalendar の代替方法

datetime.date.fromisocalendar を使用

from datetime import date
from pandas import Timestamp

# 2024年3月21日 (木) を作成
dt = date.fromisocalendar(2024, 12, 4)
ts = Timestamp(dt)

print(ts)
# Output: 2024-03-21 00:00:00+00:00

str を使用

from pandas import Timestamp

# 2024年3月21日 (木) を作成
ts = Timestamp("2024-W12-4")

print(ts)
# Output: 2024-03-21 00:00:00+00:00

pd.to_datetime を使用

from pandas import to_datetime

# 2024年3月21日 (木) を作成
ts = to_datetime("2024-W12-4")

print(ts)
# Output: 2024-03-21 00:00:00+00:00

これらの方法は、pandas.Timestamp.fromisocalendar と同じ結果を得ることができます。

  • pandas.Timestamp.fromisocalendar は、Pandas のコードで使用する場合に最も便利です。
  • datetime.date.fromisocalendar は、標準ライブラリを使用する場合に最も便利です。
  • strpd.to_datetime は、簡潔なコードを書きたい場合に便利です。



Pandas Data Offsets と BusinessMonthBegin.isAnchored を用いた時系列データ分析

Pandas の Data Offsets は、時系列データの分析に役立つ便利な機能です。特定の日付や時間から、一定の期間(日数、月数、年数など)を前後に移動するオフセットを生成できます。BusinessMonthBegin は、営業日の月初めに移動するオフセットです。週末や祝日を含む通常の月間オフセットとは異なり、営業日だけを考慮します。



pandas.tseries.offsets.CustomBusinessMonthBegin.is_year_endの使い方とサンプルコード

pandas. tseries. offsets. CustomBusinessMonthBegin. is_year_end は、pandas ライブラリでカスタムビジネス月始オフセットの日付が年末かどうかを判定する関数です。詳細CustomBusinessMonthBegin は、カスタムビジネス月始オフセットを表すクラスです。


会計年度に基づく四半期オフセット:pandas.tseries.offsets.FY5253Quarter

pandas. tseries. offsets. FY5253Quarter. qtr_with_extra_week は、会計年度に基づく四半期オフセットを表すクラスです。このオフセットは、13週からなる4つの四半期で構成される会計年度に使用されます。


Pandasで月末から15日と月末を表す:SemiMonthEnd.freqstr徹底解説

SemiMonthEndは、月末から15日と月末を表すData Offsetです。例えば、2024年4月15日は月末から15日、2024年4月30日は月末に当たります。SemiMonthEnd. freqstrは、SemiMonthEndオフセットの文字列表現を取得するための属性です。これは、データフレームやインデックスの周波数を表示したり、日付範囲を生成したりする際に役立ちます。


Pandas Data Offsets と QuarterBegin.is_anchored 完全ガイド

Pandas は Python でデータ分析を行うための強力なライブラリです。Data offsets は、日付や時刻を操作するための便利な機能を提供します。QuarterBegin. is_anchored とは?pandas. tseries



Pandas WeekOfMonth.is_quarter_start 属性のユースケース

この解説は、Python ライブラリ Pandas の Data Offsets 機能と、WeekOfMonth オブジェクトの is_quarter_start 属性について、プログラミング初心者にも分かりやすく説明することを目的としています。


Pandas初心者でも安心! pandas.tseries.offsets.Milli.__call__ を使ったミリ秒単位の日付オフセット生成

pandas. tseries. offsets. Milli. __call__ は、Pandasの「Data offsets」機能における重要な関数の一つです。ミリ秒単位の日付オフセットを生成するために使用されます。機能この関数は以下の機能を提供します。


Pandasで曜日・月・四半期・年ごとの集計:LastWeekOfMonthで月単位の分析

LastWeekOfMonth は、その月の最後の週を表す Data Offset です。例えば、2024年3月であれば、LastWeekOfMonth は 2024年3月25日から3月31日までの期間を表します。LastWeekOfMonth


PandasのGeneral utility functionsにおけるPerformanceWarning

この解説では、Pandasの「General utility functions」における「pandas. errors. PerformanceWarning」について、以下の内容を分かりやすく説明します。PerformanceWarningの概要


Pandas GroupBy.cummax:グループごとの累積最大値を求める

pandas. core. groupby. GroupBy. cummax は、DataFrame の各グループにおける累積最大値を計算する関数です。これは、時間経過に伴う最大値の変化を追跡したり、グループ内での競争状況を分析したりする際に役立ちます。