Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Pandas – PeriodIndexオブジェクトから期間の「週」を取得する方法

PeriodIndexオブジェクトから各期間の「週」の情報を取得するには、PeriodIndex.week プロパティを使用します。このプロパティは、PeriodIndexに含まれる各期間が年の中で何週目に該当するかを整数値(ISO週番号)として返します。

PeriodIndexとは

PeriodIndexは、時系列データにおける一定の期間(分、日、月など)を表す序数値を保持する不変(イミュータブル)なndarrayです。頻度(freq)パラメータで期間の単位を指定することで、規則的な時間軸を持つインデックスとして活用できます。

実装手順

1. 必要なライブラリをインポートする

まず、pandasをインポートします。

import pandas as pd

2. PeriodIndexオブジェクトを作成する

次に、PeriodIndexオブジェクトを作成します。ここでは freq="T" を指定して、頻度を「分」単位に設定しています。

periodIndex = pd.PeriodIndex(['2021-09-25 07:30:35', '2019-10-30 04:15:45',
'2021-07-15 02:55:15', '2022-06-25 09:40:55'], freq="T")

3. PeriodIndexオブジェクトを表示する

print("PeriodIndex...\n", periodIndex)

4. 週の情報を表示する

PeriodIndexオブジェクトから週の情報を取得して表示します。

print("\nThe week from the PeriodIndex object...\n", periodIndex.week)

完全なコード例

以下に、これまでの手順をまとめたサンプルコードを示します。あわせて、頻度オブジェクトやその文字列表現も確認できます。

import pandas as pd

# PeriodIndexオブジェクトを作成
# PeriodIndexは、時間における規則的な期間を示す序数値を保持する不変のndarray
# "freq" パラメータで頻度を設定
periodIndex = pd.PeriodIndex(['2021-09-25 07:30:35', '2019-10-30 04:15:45',
'2021-07-15 02:55:15', '2022-06-25 09:40:55'], freq="T")

# PeriodIndexオブジェクトを表示
print("PeriodIndex...\n", periodIndex)

# PeriodIndexの頻度オブジェクトを表示
print("\nPeriodIndex frequency object...\n", periodIndex.freq)

# 頻度オブジェクトを文字列として表示
print("\nPeriodIndex frequency object as a string...\n", periodIndex.freqstr)

# PeriodIndexオブジェクトから週を取得して表示
print("\nThe week from the PeriodIndex object...\n", periodIndex.week)

出力結果

上記のコードを実行すると、以下のような出力が得られます。

PeriodIndex...
PeriodIndex(['2021-09-25 07:30', '2019-10-30 04:15', '2021-07-15 02:55', '2022-06-25 09:40'],
dtype='period[T]')

PeriodIndex frequency object...
<Minute>

PeriodIndex frequency object as a string...
T

The week from the PeriodIndex object...
Int64Index([38, 44, 28, 25], dtype='int64')

解説

出力結果を見ると、periodIndex.week によって各日付が年の中で何週目に相当するかが整数値で返されていることがわかります。たとえば、「2021-09-25」は38週目、「2019-10-30」は44週目、「2021-07-15」は28週目、「2022-06-25」は25週目に該当します。

このように week プロパティを使うことで、時系列データの分析において「週単位」での集計やフィルタリングを簡単に行えるようになります。なお、同様のプロパティとして dayofweek(曜日)、quarter(四半期)、month(月)なども用意されており、目的に応じて使い分けることが可能です。

  1. Python Pandas – Timedeltaオブジェクトから継続時間の合計秒数を取得する方法

    Timedeltaオブジェクトから継続時間の合計秒数を取得するには、timedelta.total_seconds() メソッドを使用します。このメソッドは、Timedeltaが表す期間全体を秒単位の浮動小数点数(float)として返します。まず、必要なライブラリをインポートします。import pandas as pdTimeDeltaはPython標準のdatetimeライブラリにおけるtimedeltaとは異なる表現を持つデータ型です。ここでは、PandasのTimedeltaオブジェクトを作成します。timedelta = pd.Timedelta(2 days 11 hours 22

  2. Python・PandasのTimestampオブジェクトから曜日を取得する方法

    PandasのTimestampオブジェクトから曜日を取得するには、timestamp.weekday()メソッドを使用します。このメソッドは、対象の日付が何曜日に該当するかを数値で返してくれます。まずは、必要なライブラリをインポートしましょう。import pandas as pd import datetimeTimestampオブジェクトの作成次に、Pandasでタイムスタンプを設定し、Timestampオブジェクトを作成します。ここでは例として「2021年5月12日」を使用します。timestamp = pd.Timestamp(datetime.datetime(2021, 5, 1