Python Pandas入門:DateTimeIndex.monthで月番号を抽出する方法(時系列頻度Mの例つき)
PythonのPandasライブラリでは、DateTimeIndex.monthプロパティを使用することで、特定の時系列頻度を持つDateTimeIndexから「月番号」を簡単に抽出できます。この記事では、実際のコード例と実行結果をもとに、その手順をわかりやすく解説します。
DateTimeIndex.monthとは?
DateTimeIndexオブジェクトが持つmonthプロパティにアクセスすると、インデックス内の各日付に対応する月番号を取得できます。月番号は以下のように対応しています。
- 1月 → 1
- 2月 → 2
- …
- 12月 → 12
必要なライブラリのインポート
まずは、Pandasをインポートします。
import pandas as pd
DateTimeIndexの作成
次に、開始日時を「2021-09-24 02:35:55」とし、期間(periods)を6、頻度(freq)を「M」(月末=MonthEnd)、タイムゾーンを「Australia/Sydney」に指定したDatetimeIndexを作成します。
datetimeindex = pd.date_range('2021-09-24 02:35:55', periods=6, tz='Australia/Sydney', freq='M')作成したDateTimeIndexを表示して確認しましょう。
print("DateTimeIndex...\n", datetimeindex)月番号の抽出
datetimeindex.monthにアクセスすることで、各日付の月番号(1月=1、2月=2、…、12月=12)を取得できます。
print("\nGetting the month number..\n", datetimeindex.month)完全なサンプルコード
以下は、ここまでの手順をまとめた完全なコード例です。
import pandas as pd
# 期間6・頻度M(月末)のDatetimeIndexを作成
# タイムゾーンは Australia/Sydney を指定
datetimeindex = pd.date_range('2021-09-24 02:35:55', periods=6, tz='Australia/Sydney', freq='M')
# DateTimeIndexを表示
print("DateTimeIndex...\n", datetimeindex)
# DateTimeIndexの頻度を表示
print("DateTimeIndex frequency...\n", datetimeindex.freq)
# 月番号を取得(1月=1、2月=2、…、12月=12)
print("\nGetting the month number..\n", datetimeindex.month)実行結果
上記のコードを実行すると、次のような出力が得られます。
DateTimeIndex...
DatetimeIndex(['2021-09-30 02:35:55+10:00', '2021-10-31 02:35:55+11:00',
'2021-11-30 02:35:55+11:00', '2021-12-31 02:35:55+11:00',
'2022-01-31 02:35:55+11:00', '2022-02-28 02:35:55+11:00'],
dtype='datetime64[ns, Australia/Sydney]', freq='M')
DateTimeIndex frequency...
<MonthEnd>
Getting the month number..
Int64Index([9, 10, 11, 12, 1, 2], dtype='int64')ポイントの解説
- freq='M' を指定しているため、各日付は自動的に「月末」に調整されています(例:9月24日 → 9月30日)。
- タイムゾーンとしてAustralia/Sydneyを指定しているため、夏時間(UTC+11:00)と標準時間(UTC+10:00)が自動的に反映されています。
- 出力結果の [9, 10, 11, 12, 1, 2] は、9月〜翌年2月までの月番号を示しており、年をまたいでも正しく抽出できることがわかります。
このように、DateTimeIndex.monthプロパティを使えば、時系列データから月情報を一行で簡単に取り出せます。売上分析や季節性の検出など、月単位の集計処理にぜひ活用してください。
-
Python Pandas – 特定の時系列頻度でDateTimeIndexから分を抽出する方法
特定の時系列頻度で作成した DateTimeIndex から「分(minute)」を抽出するには、DateTimeIndex.minute プロパティを使用します。このプロパティは、インデックス内の各日時に対応する分の値を Int64 型の配列として返します。 必要なライブラリをインポートする まず、pandas をインポートします。 import pandas as pd DateTimeIndex を作成する 次に、期間(periods)を 6、頻度(freq)を T(=分単位)とし、タイムゾーンをオーストラリア/シドニー(Australia/Sydney)に設定した DatetimeI
-
Python Pandas入門:特定の時系列頻度でDateTimeIndexから時間(hour)を抽出する方法
特定の時系列頻度を持つ DateTimeIndex から時間(hour)を抽出したい場合は、DateTimeIndex.hour プロパティを使用します。このプロパティを使うことで、日時インデックスに含まれる各タイムスタンプの「時」の部分だけを簡単に取り出すことができます。必要なライブラリのインポートまず、必要なライブラリをインポートしましょう。import pandas as pdDateTimeIndexの作成次に、開始時刻「2021-10-20 02:35:55」から始まる、期間6・頻度「H」(時間単位)の DatetimeIndex を作成します。タイムゾーンはオーストラリアのシドニー