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

Python Pandas – Periodオブジェクトから年間通算日を取得する方法

PandasのPeriodオブジェクトから年間通算日(その年の何日目にあたるか)を取得したい場合は、period.dayofyearプロパティを使用します。このプロパティは、うるう年でない通常の年では1〜365、うるう年では1〜366の範囲の値を返します。

必要なライブラリのインポート

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

import pandas as pd

pandas.Periodは、ある期間の時点を表すオブジェクトです。ここでは、2つのPeriodオブジェクトを作成してみましょう。

period1 = pd.Period("2020-09-23")
period2 = pd.Period(freq="D", year=2021, month=7, day=16, hour=2, minute=35)

1つ目は日付文字列から、2つ目はfreq(頻度)や年・月・日などの個別の引数を指定して生成しています。

Periodオブジェクトの表示

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

print("Period1...\n", period1)
print("Period2...\n", period2)

dayofyearプロパティで年間通算日を取得

それぞれのPeriodオブジェクトに対して、dayofyearプロパティを使って年間通算日を取得します。

res1 = period1.dayofyear
res2 = period2.dayofyear

完全なサンプルコード

import pandas as pd

# pandas.Periodは期間を表すオブジェクト
# 2つのPeriodオブジェクトを作成
period1 = pd.Period("2020-09-23")
period2 = pd.Period(freq="D", year=2021, month=7, day=16, hour=2, minute=35)

# Periodオブジェクトを表示
print("Period1...\n", period1)
print("Period2...\n", period2)

# 各Periodオブジェクトから年間通算日を取得
res1 = period1.dayofyear
res2 = period2.dayofyear

# 戻り値は、通常の年なら1〜365、うるう年なら1〜366の範囲
print("\n1つ目のPeriodオブジェクトの年間通算日...\n", res1)
print("\n2つ目のPeriodオブジェクトの年間通算日...\n", res2)

実行結果

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

Period1...
2020-09-23
Period2...
2021-07-16

Day of the year from the 1st Period object ...
267

Day of the year from the 2nd Period object...
197

このように、2020年9月23日はその年の267日目、2021年7月16日は197日目であることが確認できます。時刻情報を含むPeriodオブジェクトでも、dayofyearは日単位の値として正しく返される点に注目してください。

  1. 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

  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)までの累積日数を合計し、そこに「日」の数を加えて