Python Pandas – 指定したPeriodの週番号(weekofyear)を取得する方法
Pandasのperiod.weekofyearプロパティを使うと、指定したPeriod(期間)オブジェクトがその年の何週目にあたるかを簡単に取得できます。まず、必要なライブラリをインポートしましょう。
import pandas as pd
pandas.Periodは、特定の時点や期間を表すオブジェクトです。ここでは、2つのPeriodオブジェクトを作成します。1つ目は日付文字列から、2つ目は年・月・日などの値を個別に指定して生成しています。
period1 = pd.Period("2020-09-23")
period2 = pd.Period(freq="D", year = 2021, month = 4, day = 16, hour = 2, minute = 35)作成したPeriodオブジェクトの中身を確認してみましょう。
print("Period1...\n", period1)
print("Period2...\n", period2)次に、weekofyearプロパティを使って、それぞれのPeriodオブジェクトが属する年の週番号を取得します。戻り値は整数で、その年の第1週からの通算週数(1〜53)として返されます。
res1 = period1.weekofyear res2 = period2.weekofyear
なお、最近のバージョンでは同じ意味を持つ別名プロパティperiod.weekも利用できます。
サンプルコード
以下に完全なコード例を示します。
import pandas as pd
# pandas.Periodは期間を表すオブジェクト
# 2つのPeriodオブジェクトを作成
period1 = pd.Period("2020-09-23")
period2 = pd.Period(freq="D", year = 2021, month = 4, day = 16, hour = 2, minute = 35)
# Periodオブジェクトを表示
print("Period1...\n", period1)
print("Period2...\n", period2)
# 各Periodオブジェクトから年の週番号を取得
res1 = period1.weekofyear
res2 = period2.weekofyear
# 結果を出力
print("\n1つ目のPeriodオブジェクトの週番号...\n", res1)
print("\n2つ目のPeriodオブジェクトの週番号...\n", res2)実行結果
上記のコードを実行すると、次のような出力が得られます。
Period1... 2020-09-23 Period2... 2021-04-16 1つ目のPeriodオブジェクトの週番号... 39 2つ目のPeriodオブジェクトの週番号... 15
このように、weekofyearプロパティを使えば、日付文字列や個別の日時データから作成したPeriodオブジェクトに対して、統一的な方法で週番号を取得できます。時系列データの分析で「何週目のデータか」を集計したい場合などに便利です。
-
Python Pandas - 指定したタイムスタンプを期間(Period)に変換する方法
Pandasで指定したタイムスタンプを期間に変換するには、timestamp.to_period() メソッドを使用します。このメソッドでは、freq パラメータを使って頻度を指定することができます。必要なライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pdタイムスタンプオブジェクトの作成次に、Pandasでタイムスタンプオブジェクトを作成します。timestamp = pd.Timestamp(2021-09-14T15:12:34.261811624)タイムスタンプから期間への変換タイムスタンプを期間に変換します。ここでは、freq パラメ
-
Pythonで現在の週番号を取得する方法
Pythonで今日が一年のうち何週目にあたるのかを調べたい場合は、標準ライブラリのdatetimeモジュールが提供するisocalendar()メソッドを使うのが最も簡単です。 isocalendar() メソッドの基本 isocalendar()は、ISO 8601形式の暦に基づいて情報を返すメソッドです。まずdateオブジェクトを作成し、そのオブジェクトに対してisocalendar()を呼び出します。戻り値は次の3つの要素を持つタプルです。 年(year):ISO暦における年 週番号(week number):その年の何週目か(1〜53) 曜日(day of week):月曜日を1、日