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

Python・NumPyでpytzタイムゾーンを使って日時の配列を文字列の配列に変換する方法

PythonのNumPyで日時(datetime)の配列を文字列の配列に変換するには、numpy.datetime_as_string() メソッドを使用します。このメソッドは、入力配列と同じ形状の文字列配列を返します。第1引数には、フォーマット対象となるUTCタイムスタンプの配列を指定します。

第2引数は「timezone」で、日時を表示する際に使用するタイムゾーン情報を指定します。'UTC' を指定した場合は末尾にZが付加されUTC時間であることを示し、'local' を指定した場合はまずローカルタイムゾーンに変換された上で、±#### 形式のタイムゾーンオフセットが接尾辞として付きます。tzinfoオブジェクトを指定した場合は 'local' と同様の処理が行われますが、その際には指定されたタイムゾーンが使用されます。

手順

まず、必要なライブラリをインポートします。pytzのタイムゾーンを使用するため、「pytz」ライブラリもインポートしておきます。

import numpy as np
import pytz

次に、日時の配列を作成します。データ型「M」はdatetime型を表します。

arr = np.arange('2022-02-20T03:25', 6*60, 60, dtype='M8[m]')

作成した配列を表示します。

print("Array...\n",arr)

配列のデータ型を確認します。

print("\nArray datatype...\n",arr.dtype)

配列の次元数を取得します。

print("\nArray Dimensions...\n",arr.ndim)

配列の形状を取得します。

print("\nOur Array Shape...\n",arr.shape)

配列の要素数を取得します。

print("\nNumber of elements in the Array...\n",arr.size)

日時の配列を文字列の配列に変換するには、numpy.datetime_as_string() メソッドを使用します。このメソッドは、入力配列と同じ形状の文字列配列を返します。

print("\nResult...\n",np.datetime_as_string(arr, timezone=pytz.timezone('US/Eastern')))

完全なサンプルコード

import numpy as np
import pytz

# 日時の配列を作成
# データ型「M」はdatetime型を表す
arr = np.arange('2022-02-20T03:25', 6*60, 60, dtype='M8[m]')

# 配列を表示
print("Array...\n",arr)

# データ型を取得
print("\nArray datatype...\n",arr.dtype)

# 配列の次元数を取得
print("\nArray Dimensions...\n",arr.ndim)

# 配列の形状を取得
print("\nOur Array Shape...\n",arr.shape)

# 配列の要素数を取得
print("\nNumber of elements in the Array...\n",arr.size)

# Python NumPyのnumpy.datetime_as_string()メソッドを使用して、
# 日時の配列を文字列の配列に変換する
# このメソッドは、入力配列と同じ形状の文字列配列を返す
print("\nResult...\n",np.datetime_as_string(arr, timezone=pytz.timezone('US/Eastern')))

実行結果

Array...
['2022-02-20T03:25' '2022-02-20T04:25' '2022-02-20T05:25'
'2022-02-20T06:25' '2022-02-20T07:25' '2022-02-20T08:25']

Array datatype...
datetime64[m]

Array Dimensions...
1

Our Array Shape...
(6,)

Number of elements in the Array...
6

Result...
['2022-02-19T22:25-0500' '2022-02-19T23:25-0500' '2022-02-20T00:25-0500'
'2022-02-20T01:25-0500' '2022-02-20T02:25-0500' '2022-02-20T03:25-0500']

実行結果を見ると、タイムゾーンとして US/Eastern(アメリカ東部標準時、UTC-5)を指定したため、元のUTCの日時から5時間遅れた時刻に変換され、各文字列の末尾に「-0500」というオフセットが付加されていることがわかります。このように、pytzのタイムゾーンオブジェクトを渡すだけで、任意の地域の時刻表記へ簡単に変換できます。

  1. JSONデータをPythonオブジェクトに変換する方法【json.loads()の使い方】

    Pythonでは、jsonモジュールをインポートし、json.loads()メソッドを使うことで、JSON形式の文字列をPythonのオブジェクト(辞書型)に簡単に変換できます。本記事では、実際のコード例とその実行結果をもとに、変換の手順をわかりやすく解説します。 JSON文字列を辞書に変換するサンプルコード 以下のコードは、JSON形式の文字列をPythonの辞書オブジェクトに変換する例です。json.loads()メソッドにJSON文字列を渡すだけで、自動的に辞書型へとパースされます。 import json json_string = {name: Sonali, age: 21,

  2. PythonオブジェクトをJSONオブジェクトに変換する方法をわかりやすく解説

    Pythonでデータを扱う際、オブジェクトをJSON形式に変換したい場面はよくあります。例えば、Web APIとの通信や設定ファイルの保存などがその代表例です。json.dumps()メソッドを使った基本的な変換方法Pythonには標準ライブラリとしてjsonモジュールが用意されており、これをインポートするだけで簡単に変換処理が行えます。オブジェクトをJSON形式の文字列に変換するには、json.dumps()メソッドを使用します。以下は、リストオブジェクト a = [1, 2, 3] をJSONオブジェクトに変換する具体例です。>>> a = [1, 2, 3] >&