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

Python Pandas入門:POSIXタイムスタンプからナイーブなUTC日時を作成する方法

POSIXタイムスタンプ(UNIXエポックからの経過秒数)から、タイムゾーン情報を持たない「ナイーブ(naive)」なUTC日時オブジェクトを作成したい場合があります。Pandasでは、Timestamp.utcfromtimestamp()メソッドを使うことで簡単に実現できます。このメソッドの引数にはPOSIXタイムスタンプを渡します。

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

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

import pandas as pd

Timestampオブジェクトの作成

次に、日時文字列からTimestampオブジェクトを作成します。

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

POSIXタイムスタンプからUTC日時への変換

utcfromtimestamp()メソッドを呼び出し、引数としてPOSIXタイムスタンプを渡すことで、ナイーブなUTC日時が生成されます。ここでは例として「1631717502」というタイムスタンプを使用します。

timestamp.utcfromtimestamp(1631717502)

サンプルコード

以下に完全なコード例を示します。

import pandas as pd

# Timestampオブジェクトを作成
timestamp = pd.Timestamp('2021-09-14T15:12:34.261811624')

# Timestampを表示
print("Timestamp...\n", timestamp)

# POSIXタイムスタンプからナイーブなUTC日時を作成
# 引数にPOSIXタイムスタンプを渡す
print("\nConstruct UTC Datetime...\n", timestamp.utcfromtimestamp(1631717502))

実行結果

上記のコードを実行すると、次のような出力が得られます。

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

Construct UTC Datetime...
 2021-09-15 14:51:42

ポイント解説

「ナイーブな日時」とは、タイムゾーン情報(tzinfo)を持たないdatetimeオブジェクトのことです。utcfromtimestamp()は、指定されたPOSIXタイムスタンプを協定世界時(UTC)として解釈し、タイムゾーン情報なしの日時オブジェクトを返します。そのため、タイムスタンプ「1631717502」は「2021-09-15 14:51:42」というUTC基準の日時に変換されています。タイムゾーンを意識した処理が必要な場合は、tz_localize()やtz_convert()などのメソッドと組み合わせて使用するとよいでしょう。

  1. Python・Pandasで日時列から日付と時刻を分離するプログラムの作り方

    データ分析では、DataFrame内の日時(datetime)列を「日付」と「時刻」に分けて扱いたい場面がよくあります。たとえば、日ごとの集計を行いたい場合や、時間帯だけを取り出して分析したい場合などが挙げられます。この記事では、datetime 列を date 列と time 列に分割する方法を、2つのアプローチで解説します。目標とする出力イメージ datetime date time 0 2020-01-01 07:10:00 2020-01-01 07:10:00 1 2020-01-02 07:10:00 2020-01-02 07

  2. Pythonで日時をUTCタイムスタンプに変換する方法を徹底解説

    Pythonでは、datetimeモジュールを使うことで、日時(datetime)をUTCタイムスタンプへ簡単に変換できます。すでにdatetimeオブジェクトがUTCとして作成されている場合は、timestamp()メソッドを呼び出すだけでUTCタイムスタンプを取得できます。このメソッドは、エポック(1970年1月1日00:00:00 UTC)からの経過秒数を返します。 一方、datetimeオブジェクトがローカルタイムゾーンで作成されている場合は、まずreplace()メソッドでタイムゾーン情報をUTCに置き換えてから、タイムスタンプを取得する必要があります。 例:timezone.utc