時間差分の扱い方

PythonPythonBeginner
オンラインで実践に進む

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、pandas ライブラリを使って Python で時間差分を扱う方法を学びます。時間差分は、期間や時間の差を表します。時間差分を構築、操作、および演算するさまざまな方法を探求します。

VM のヒント

VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習します。

Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。

学習中に問題が発生した場合は、Labby にお問い合わせください。セッション終了後にフィードバックを提供してください。すぐに問題を解決いたします。

必要なライブラリをインポートする

まず、必要なライブラリをインポートする必要があります。この場合、pandas と numpy を使用します。

## Import the required libraries
import pandas as pd
import numpy as np
import datetime

時間差分を構築する

時間差分を表す timedelta オブジェクトを作成しましょう。

## Construct a timedelta object
pd.Timedelta("1 days 2 hours")

時間差分に変換する

認識された時間差分形式のスカラー、配列、リスト、またはシリーズを時間差分型に変換することができます。

## Convert a string to a timedelta
pd.to_timedelta("1 days 06:05:01.00003")

演算を行う

時間差分に対して数学的演算を行うことができます。

## Subtract two timedeltas
s = pd.Series(pd.date_range("2012-1-1", periods=3, freq="D"))
s - s.max()

属性にアクセスする

時間差分の様々なコンポーネントに直接アクセスすることができます。

## Access the days attribute of a timedelta
tds = pd.Timedelta("31 days 5 min 3 sec")
tds.days

ISO 8601 期間形式に変換する

時間差分を ISO 8601 期間形式の文字列に変換することができます。

## Convert a timedelta to an ISO 8601 Duration string
pd.Timedelta(days=6, minutes=50, seconds=3, milliseconds=10, microseconds=10, nanoseconds=12).isoformat()

時間差分インデックスを作成する

時間差分を持つインデックスを生成することができます。

## Generate a timedelta index
pd.TimedeltaIndex(["1 days", "1 days, 00:00:05", np.timedelta64(2, "D"), datetime.timedelta(days=2, seconds=2)])

時間差分インデックスを使用する

時間差分インデックスを pandas オブジェクトのインデックスとして使用することができます。

## Use the timedelta index as the index of a pandas series
s = pd.Series(np.arange(100), index=pd.timedelta_range("1 days", periods=100, freq="h"))

時間差分インデックスを使った演算を行う

時間差分インデックスを使って演算を行うことができます。

## Add a timedelta index to a datetime index
tdi = pd.TimedeltaIndex(["1 days", pd.NaT, "2 days"])
dti = pd.date_range("20130101", periods=3)
(dti + tdi).to_list()

時間差分インデックスのリサンプリング

時間差分インデックスを使ってデータをリサンプリングすることができます。

## Resample data with a timedelta index
s.resample("D").mean()

まとめ

この実験では、pandas ライブラリを使って Python で時間差分を扱う方法を学びました。時間差分の構築方法、時間差分に変換する方法、演算を行う方法、属性にアクセスする方法、ISO 8601 期間に変換する方法、時間差分インデックスを作成する方法、時間差分インデックスを使用する方法、時間差分インデックスを使った演算を行う方法、および時間差分インデックスのリサンプリングについて説明しました。これらのスキルを使えば、将来のデータ分析タスクで時間ベースのデータを効率的に処理および操作することができます。