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

Python Pandas:PeriodIndexを作成して年の何日目か(dayofyear)を取得する方法

PeriodIndexとは

PeriodIndexは、Pandasの時系列機能のひとつで、時間軸上の一定の期間(日・月・四半期など)を表す序数値を保持する不変(イミュータブル)なndarrayです。PeriodIndexを作成するにはpandas.PeriodIndex()メソッドを使用し、各日付がその年の何日目にあたるかを取得するにはPeriodIndex.dayofyearプロパティを使います。

ライブラリのインポート

まず、必要なライブラリをインポートします。

import pandas as pd

PeriodIndexの作成

PeriodIndexオブジェクトを作成します。「freq」パラメータで頻度を指定でき、ここでは「D」(日単位)を設定しています。

periodIndex = pd.PeriodIndex(['2018-07-25', '2019-10-30', '2020-11-20',
'2021-09-15', '2022-03-12', '2023-06-18'], freq="D")

作成したPeriodIndexオブジェクトを表示します。

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

続いて、dayofyearプロパティを使って、各日付が年の何日目かを表示します。

print("\nDays of the year from the PeriodIndex...\n", periodIndex.dayofyear)

サンプルコード

以下に、ここまでの手順をまとめた完全なコードを示します。

import pandas as pd

# PeriodIndexオブジェクトを作成
# PeriodIndexは、時間軸上の一定の期間を示す序数値を保持する不変なndarrayです
# 「freq」パラメータで頻度を設定しています
periodIndex = pd.PeriodIndex(['2018-07-25', '2019-10-30', '2020-11-20',
'2021-09-15', '2022-03-12', '2023-06-18'], freq="D")

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

# PeriodIndexの頻度を表示
print("\nPeriodIndex frequency...\n", periodIndex.freq)

# 各日付の「日」を表示
print("\nThe number of days from the PeriodIndex...\n", periodIndex.day)

# 各日付が年の何日目かを表示
print("\nDays of the year from the PeriodIndex...\n", periodIndex.dayofyear)

実行結果

このコードを実行すると、次のような出力が得られます。

PeriodIndex...
PeriodIndex(['2018-07-25', '2019-10-30', '2020-11-20', '2021-09-15', '2022-03-12', '2023-06-18'],
dtype='period[D]')

PeriodIndex frequency...
<Day>

The number of days from the PeriodIndex...
Int64Index([25, 30, 20, 15, 12, 18], dtype='int64')

Days of the year from the PeriodIndex...
Int64Index([206, 303, 325, 258, 71, 169], dtype='int64')

dayとdayofyearの違い

dayプロパティは月の中での日付(1〜31)を返すのに対し、dayofyearプロパティは年の中での通算日数(1〜365、うるう年は1〜366)を返します。例えば「2018-07-25」の場合、dayは「25」、dayofyearは「206」となり、7月25日がその年の206日目であることがわかります。時系列データの分析では、季節性の把握や特定日の抽出などにdayofyearが役立ちます。

  1. 【Python Pandas】Timestampオブジェクトから現在の日付と時刻を取得する方法

    PandasのTimestampオブジェクトから現在の日付と時刻を取得するには、timestamp.today()メソッドを使用します。このメソッドは、呼び出し元のタイムスタンプ情報を基に、実行時点の「今日」の日付と時刻を返します。必要なライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pd import datetimeタイムスタンプの作成次に、PandasでTimestampオブジェクトを作成します。ここでは2021年10月10日の日付を指定しています。timestamp = pd.Timestamp(datetime.datetime(20

  2. Pythonで日付から「年の何日目か」を求める方法

    「YYYY-MM-DD」形式の日付が与えられたとき、その日がその年の何日目にあたるかを返すプログラムを考えてみましょう。たとえば、日付が「2019-02-10」であれば、これはその年の41日目に相当します。 解決のための手順 この問題は、以下のステップで解くことができます。 各月の日数を格納した配列Dを用意します。例:[0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] 日付文字列を年・月・日のリストに変換します。 うるう年の場合は、2月の日数を29日に変更します。 1月から(対象の月 − 1)までの累積日数を合計し、そこに「日」の数を加えて