2
1

More than 1 year has passed since last update.

コピペで使える!PYTHONとエクセルで13桁unixtime数字羅列をpythonで一瞬で日付型に変換しデータフレームへ格納する

Last updated at Posted at 2022-11-04

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で割る
2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1