はじめに
この実験では、Pandas DataFrame の between_time() メソッドの使い方を学びます。このメソッドを使うと、1 日の特定の時間帯の間の値を選択できます。これは、DataFrame から特定の時間ベースのデータをフィルタリングして抽出するために使用できます。
VM のヒント
VM の起動が完了したら、左上隅をクリックして Notebook タブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み完了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なライブラリをインポートする
between_time() メソッドを使用する前に、必要なライブラリをインポートする必要があります。この実験では、Pandas ライブラリを使用します。
import pandas as pd
DataFrame を作成する
次に、時間ベースのデータを含む DataFrame を作成しましょう。Pandas の date_range() 関数を使用して日付のシーケンスを生成し、それを DataFrame のインデックスとして設定することができます。
values = pd.date_range('2021-01-01', periods=4, freq='20T')
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [1, 2, 3, 4]}, index=values)
特定の時間の間の値を選択する
DataFrame ができたので、between_time() メソッドを使って特定の開始時刻と終了時刻の間の値を選択しましょう。開始時刻と終了時刻を引数としてメソッドに渡すだけです。このメソッドは、指定された時間の間に該当する行のみを含む新しい DataFrame を返します。
df_selected = df.between_time('00:00', '01:00')
include_start と include_end パラメータをカスタマイズする
between_time() メソッドは、include_start と include_end パラメータをカスタマイズすることもできます。既定では、これらのパラメータは True に設定されており、これは開始時刻と終了時刻が結果に含まれることを意味します。
df_selected = df.between_time('00:00', '01:00', include_start=False, include_end=False)
非日付時間インデックスエラーを処理する
DataFrame のインデックスが DatetimeIndex でない場合、between_time() メソッドは TypeError を発生させます。このエラーを回避するには、DataFrame のインデックスが DatetimeIndex であることを確認してください。
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [1, 2, 3, 4]}, index=[1, 2, 3, 4])
## これは TypeError を発生させます
df_selected = df.between_time('00:00', '01:00')
まとめ
この実験では、Pandas DataFrame の between_time() メソッドの使い方を学びました。このメソッドを使うと、1 日の特定の時間の間の値を選択できます。開始時刻と終了時刻、および開始時刻と終了時刻の含め方をカスタマイズして、DataFrame から特定の時間ベースのデータをフィルタリングして抽出できます。TypeError エラーを回避するためには、DataFrame のインデックスが DatetimeIndex であることを確認することが重要です。このメソッドは、時系列データの分析やデータセットから特定の期間を抽出するなど、さまざまなアプリケーションで役立つ場合があります。