Pandas 預設時間格式轉換為 Unix 時間戳

2021-08-28 16:14:56 字數 2193 閱讀 2626

pandas讀取csv檔案時,時間會自動顯示為『yyyy-mm-dd hh:mm:ss』的格式,那麼如果想要將這個時間轉換為unix時間戳呢?

先科普一下,什麼是 unix時間戳 呢?

unix時間戳 是一種時間表示方式,是乙個整型值,代表從格林威治時間2023年01月01日00時00分00秒起至現在經過的總秒數。

舉個栗子:

乙個值為1492751843的unix時間戳 ==>

把它轉換為 北京時間為2017/4/21 13:17:23

實際上,pandas中時間用 pandas.datetime() 轉換為 pandas.tslib.timestamp(時間戳) 格式之後,已經變成了整型儲存,即 unix時間戳形式 。

如果我們需要這個時間戳的整型格式,可以用time[0].value這個屬性把它提取出來。

樣例

>>> import pandas as pd     # 匯入pandas庫

>>> data = pd.read_csv('airquality.csv')        # 讀入資料檔案

>>> data.time = pd.to_datetime(data.time)   # 將時間那一列從str轉換為時間戳格式

>>> type(data.time[0])      # 檢視轉換之後的格式

>>> data.time[0]            # 檢視第一條資料,預設顯示為『yyyy-mm-dd hh:mm:ss』格式

timestamp('2014-05-01 00:00:00')

>>> data.time[0].value  # 檢視第一條資料的unix時間戳格式

1398902400000000000l

>>> data.time[0].value//10**9   # 轉換為秒級

1398902400l

>>> t1 = [t.value for t in data.time]   # 提取整列(納秒級,即1s = 1,000,000,000 ns)

>>> t1[:3]      # 顯示前三條資料

[1398902400000000000l, 1398906000000000000l, 1398909600000000000l]

>>> t2 = [t.value//10**9 for t in data.time]    # 提取整列(秒級)

>>> t2[:3]      # 顯示前三條資料

[1398902400l, 1398906000l, 1398909600l]

>>> t1 = pd.datetimeindex(t1)       # 從list列表轉換為pandas的datetimeindex格式

>>> t1[:3]      # 顯示前三條資料

datetimeindex(['2014-05-01 00:00:00', '2014-05-01 01:00:00',

'2014-05-01 02:00:00'],

dtype='datetime64[ns]', freq=none)

>>> type(t1[0])     # 每條資料為timestamp格式

>>> t1[0].value

1398902400000000000l

Oracle修改預設時間格式

oracle修改預設時間格式 1.向 資料庫中插入當前時間 向oracle插入當前日期 使用sysdate 例 insert into table date value sysdate 插入的是系統時間和日期 時間精確到天 當前的時間格式是 oracle的預設時間格式 dd mon rr www.2...

Oracle修改預設時間格式

oracle修改預設時間格式 1.向資料庫中插入當前時間 向oracle插入當前日期 使用sysdate 例 insert into table date value sysdate 插入的是系統時間和日期 時間精確到天 當前的時間格式是oracle的預設時間格式 dd mon rr www.2ct...

mysql 預設時間

mysql 的日期型別如何設定當前時間為其預設值?答 請使用 timestamp 型別,且 預設值設為 now 或 current timestamp 還有可能啟用嚴格模式mysql 5.7 版本開始有了乙個 strict mode 嚴格模式 此模式中對預設值做了一些限制。限制00 00 00時間按...