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

Pythonでデータフレームのタイムゾーンをアジア地域にローカライズする方法

はじめに

時系列データを扱う際、タイムゾーンのローカライズは重要な前処理の一つです。この記事では、pandasを使用して、特定のデータフレームのインデックスをアジアのタイムゾーン(例:Asia/Calcutta)にローカライズする方法を解説します。

今回作成するプログラムを実行すると、以下のようにローカライズされたDatetimeIndexが得られます。

Index is:
DatetimeIndex(['2020-01-05 00:30:00+05:30', '2020-01-12 00:30:00+05:30',
              '2020-01-19 00:30:00+05:30', '2020-01-26 00:30:00+05:30',
              '2020-02-02 00:30:00+05:30'],
              dtype='datetime64[ns, Asia/Calcutta]', freq='W-SUN')

解決手順

1. データフレームを定義する

まず、サンプルとなるデータフレームを作成します。

2. タイムゾーン付きの時系列を作成する

pd.date_range()関数を使用して時系列を生成します。開始日時を「2020-01-01 00:30」、periods=5、tz='Asia/Calcutta'を指定し、結果をtime_indexとして保存します。

time_index = pd.date_range('2020-01-01 00:30', periods = 5, freq ='W', tz = 'Asia/Calcutta')

3. インデックスにローカライズしたタイムゾーンを設定する

df.indexに、time_indexで生成したローカライズ済みの時系列を代入します。

df.index = time_index

4. ローカライズされたタイムゾーンを出力する

最後に、ローカライズされたタイムゾーンを持つインデックスを表示します。

完全なコード例

理解を深めるために、以下のコード全体を確認してみましょう。

import pandas as pd
df = pd.DataFrame({'Id':[1,2,3,4,5],
                   'City':['Mumbai','Pune','Delhi','Chennai','Kolkata']})
time_index = pd.date_range('2020-01-01 00:30', periods = 5, freq ='W', tz = 'Asia/Calcutta')
df.index = time_index
print("DataFrame is:\n",df)
print("Index is:\n",df.index)

出力結果

DataFrame is:
                          Id City
2020-01-05 00:30:00+05:30  1 Mumbai
2020-01-12 00:30:00+05:30  2 Pune
2020-01-19 00:30:00+05:30  3 Delhi
2020-01-26 00:30:00+05:30  4 Chennai
2020-02-02 00:30:00+05:30  5 Kolkata
Index is:
DatetimeIndex(['2020-01-05 00:30:00+05:30', '2020-01-12 00:30:00+05:30',
              '2020-01-19 00:30:00+05:30', '2020-01-26 00:30:00+05:30',
              '2020-02-02 00:30:00+05:30'],
              dtype='datetime64[ns, Asia/Calcutta]', freq='W-SUN')

補足:tz_localize()メソッドとの違い

なお、既存のDatetimeIndexに対して後からタイムゾーンを適用したい場合は、tz_localize('Asia/Calcutta')メソッドを使うこともできます。date_range()tz引数は時系列の生成時にタイムゾーンを指定する方法であり、どちらも同じ結果が得られます。また、「Asia/Calcutta」はインド標準時(IST、UTC+5:30)を表すタイムゾーン名です。用途に応じて使い分けるとよいでしょう。

  1. Pythonで指定した数のグレイコードを求めるプログラムの作成方法

    グレイコードとは? グレイコード(Gray Code)とは、隣り合う数値同士のビット表現が必ず「ちょうど1ビットだけ」異なるように並べた、二進数の順序付け方式です。デジタル回路やエンコーダなど、誤読を防ぎたい場面で活用されていることで知られています。 グレイコードの一例は次の通りです。[0, 1, 11, 10, 110, 111, …] 問題の定義 ある数 n が与えられたとき、n 番目のグレイコードを求めることを考えます。 例: 入力が n = 12 の場合、出力は 10 になります。これは、12 を二進数で表すと (1100) であり、それに対応するグレイコードは (1010)、その十

  2. 【Python】与えられた数がフィボナッチ数かどうかを判定する方法を解説

    本記事では、以下の問題文に対する解決策について詳しく学んでいきます。 問題の定義 数値 n が与えられたとき、その数がフィボナッチ数であるかどうかを判定します。 ご存知のとおり、n番目のフィボナッチ数は「直前の2つのフィボナッチ数の和」として定義されます。しかし、この漸化式以外にも、フィボナッチ数には興味深い数学的な性質が存在します。 フィボナッチ数の判定に使える重要な性質 ある数 n がフィボナッチ数であるのは、次の条件が成り立つ場合、かつその場合に限られます。 5×n² + 4 が完全平方数である または 5×n² − 4 が完全平方数である つまり、上記のどちらか一方(または両方)が