パンダ: 日付から通算日を取得する方法
次の基本構文を使用して、pandas DataFrame の日付列から年間通算日を取得できます。
df[' day_of_year '] = df[' date ']. dt . dayofyear
この特定の例では、日付列の値の年の日付を含むday_of_yearという新しい列を作成します。
day_of_year値の範囲は 1 (1 月 1 日) から 365 (12 月 31 日) であることに注意してください。
次の例は、この構文を実際に使用する方法を示しています。
例: Pandas の日付から通算日を取得する
さまざまな日付の店舗での総売上高に関する情報を含む次のパンダ データフレームがあるとします。
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' date ': pd.date_range (start=' 1/1/2022 ', freq=' M ', periods= 10 ),
' sales ': [6, 8, 10, 5, 4, 8, 8, 3, 5, 14]})
#view DataFrame
print (df)
dirty date
0 2022-01-31 6
1 2022-02-28 8
2 2022-03-31 10
3 2022-04-30 5
4 2022-05-31 4
5 2022-06-30 8
6 2022-07-31 8
7 2022-08-31 3
8 2022-09-30 5
9 2022-10-31 14
次のコードを使用して、日付列の日付を含むday_of_yearという新しい列を作成できます。
#create new column that contains day of year in 'date' column df[' day_of_year '] = df[' date ']. dt . dayofyear #view updated DataFrame print (df) date sales day_of_year 0 2022-01-31 6 31 1 2022-02-28 8 59 2 2022-03-31 10 90 3 2022-04-30 5 120 4 2022-05-31 4 151 5 2022-06-30 8,181 6 2022-07-31 8,212 7 2022-08-31 3,243 8 2022-09-30 5,273 9 2022-10-31 14,304
day_of_yearという新しい列には、日付列のその年の日付が含まれます。
うるう年を使用している場合、この関数は可能な値の範囲を 365 から 366 に自動的に拡張することに注意してください。
また、操作している列が文字列列の場合は、最初にpd.to_datetime()を使用して文字列を認識可能な日付に変換する必要があることにも注意してください。
#convert string column to datetime and calculate day of year
df[' day_of_year '] = pd. to_datetime (df[' date ']). dt . dayofyear
注: pandas dayofyear関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。
Pandas で日付に日数を加算および減算する方法
Pandas で 2 つの日付の間の行を選択する方法
Pandasで年、月、日から日付列を作成する方法