yiskw note

機械学習やプログラミングについて気まぐれで書きます

pandasでUNIX時間をdatetime型に変換する


概要

pandasでUNIX時刻をdatetime型に変換する方法について調べたので,備忘録として残しておきます.

UNIX時刻とは

ja.wikipedia.org

協定世界時 (UTC) での1970年1月1日午前0時0分0秒から形式的な経過秒数(すなわち、実質的な経過秒数から、その間に挿入された閏秒を引き、削除された閏秒を加えたもの)として表される。

変換方法1

pd.to_datetime()で,引数にunit="s"とすることで変換できます.

import pandas as pd


unix_time = 1590836434
pd.to_datetime(unix_time, unit="s")
> Timestamp('2020-05-30 11:00:34')

変換できました.あるカラムに対して実行するには,

df["timestamp"] = pd.to_datetime(df["timestamp"], unit="s")

とすれば良いです.

変換方法2

自分は上の方法で変な値になってしまう場合があった(原因は不明)ので,以下の方法で変換しました.

from datetime import datetime


df["timestamp"] = df["timestamp"].apply(datetime.fromtimestamp)

参考