13桁unixtimeのtimestamp列を日付が見れるditetimeに変換しデータフレームへ格納します。
インプット前提
df['unixtime'] ←例えば13桁の数字が入っているとします。ex)1234567890123
最終目的
df['datetime'] ←2022-12-12 01:01:12 こうなります!%Y-%m-%d %H:%M:%S
①日付が13桁なので 2022-12-13 17:52:49 に修正する
df['datetime'] = df['updateTime'] / 1000 #13桁の為unixtimeを1000で割ります。
df['datetime'] = pd.to_datetime(df['datetime'].astype(int), unit='s') #13桁から日付へ変換します。
df['datetime'] = df['datetime'] + pd.Timedelta(hours=9)#UTCから日本時間に日付へ変換します。
print(df['datetime'])#一旦出力 日付はUTCの為注意
df['datetime'] = pd.to_datetime(df['datetime'], format="%Y-%m-%d %H:%M:%S")#日付をobject型から日付型に変換します。
print(df["datetime"].dtypes)#Date列はdatetime64型、#Date列の要素はTimestamp型となります。
print(type(df["datetime"][0]))#typeを表示 datetime64[ns] <class 'pandas._libs.tslibs.timestamps.Timestamp'>
② なお現在時刻をサササと取得する方法はこちら
# 作成日次と時刻を表示する
import datetime
now = datetime.datetime.now()
date = now.strftime("%Y-%m-%d %H:%M:%S") # 例えば 2022-12-13 17:52:49 のように格納される
③エクセルの上で13桁の数字がある場合は以下をコピペ
=(((M2/1000/60)/60)/24)+DATE(1970,1,1)
その後にセル形式を日付に選択
13桁の場合は1000で割る