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

Python Pandas – ナイーブなタイムスタンプをローカルタイムゾーンに変換する方法

Pandasにおいて、タイムゾーン情報を持たないナイーブ(naive)なタイムスタンプをローカルタイムゾーンに変換するには、timestamp.tz_localize() メソッドを使用します。tz パラメータに変換先のタイムゾーンを指定することで、タイムスタンプにタイムゾーン情報(tz-aware)を付与できます。

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

まず、必要なライブラリをインポートします。

import pandas as pd

ナイーブなタイムスタンプの作成

次に、タイムゾーン情報を持たないナイーブなタイムスタンプを作成します。

timestamp = pd.Timestamp('2021-09-14T15:12:34.261811624')

タイムゾーンの追加

tz_localize() メソッドの tz パラメータに、任意のタイムゾーンを指定して呼び出します。ここでは例として「オーストラリア/ブリスベン」を設定しています。

timestamp.tz_localize(tz='Australia/Brisbane')

コード例

以下は、ここまでの手順をまとめた完全なコードです。

import pandas as pd

# ナイーブなタイムスタンプを作成
timestamp = pd.Timestamp('2021-09-14T15:12:34.261811624')

# タイムスタンプを表示
print("Timestamp...\n", timestamp)

# タイムゾーンを追加してローカルタイムゾーンに変換
print("\nTimestamp to local time zone...\n", timestamp.tz_localize(tz='Australia/Brisbane'))

出力結果

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

Timestamp...
 2021-09-14 15:12:34.261811624

Timestamp to local time zone...
 2021-09-14 15:12:34.261811624+10:00

ポイント解説

出力結果を見ると、元のタイムスタンプ「2021-09-14 15:12:34.261811624」に対して、末尾に「+10:00」というUTCオフセットが付加されていることがわかります。これはブリスベンの標準時がUTC+10時間であることを示しています。

なお、tz_localize() は既存の時刻の値をそのまま維持したままタイムゾーン情報を割り当てるメソッドです。一方、すでにタイムゾーン情報を持つタイムスタンプを別のタイムゾーンの時刻に変換したい場合は、tz_convert() メソッドを使用します。両者の違いを理解しておくと、時刻データの扱いで混乱しにくくなります。

  1. 【Python】PandasのDataFrameを日付(時間)条件でフィルタリングする方法

    PandasのDataFrameを特定の日付を基準にフィルタリングしたい場合は、locを使い、その中に抽出条件を指定することで、目的のレコードを簡単に取得できます。この記事では、購入日(Date_of_Purchase)を条件にデータを絞り込む具体的な手順を解説します。 1. 必要なライブラリをインポートする まずはPandasをインポートします。 import pandas as pd 2. 日付データを含む辞書を作成する 次に、車種と購入日のデータを持つ辞書(リスト形式)を作成します。 d = { Car: [BMW, Lexus, Audi, Mercedes, Jaguar

  2. Pythonで日付文字列をタイムスタンプに変換する方法【mktime活用】

    Pythonで日付を表す文字列をタイムスタンプ(UNIX時間)に変換したい場合、「time」パッケージに含まれるmktimeメソッドを使用するのが一般的です。この記事では、具体的なコード例と実行結果をもとに、その手順をわかりやすく解説します。 サンプルコード import time import datetime my_string = 24/03/2021 print(The date string is :) print(my_string) print(The timestamp is :) print(time.mktime(datetime.datetime.strptime(my