簡體   English   中英

熊貓:使用Unix紀元時間戳作為日期時間索引

[英]Pandas: Using Unix epoch timestamp as Datetime index

我的申請涉及處理以下形式的數據(包含在CSV中):

Epoch (number of seconds since Jan 1, 1970), Value
1368431149,20.3
1368431150,21.4
..

目前我使用numpy loadtxt方法讀取CSV(可以很容易地使用來自Pandas的read_csv)。 目前我的系列我正在轉換時間戳字段如下:

timestamp_date=[datetime.datetime.fromtimestamp(timestamp_column[i]) for i in range(len(timestamp_column))]

我通過將timestamp_date設置為我的DataFrame的Datetime索引來實現此目的。 我嘗試在幾個地方搜索,看看是否有更快(內置)的方式使用這些Unix紀元時間戳,但找不到任何。 許多應用程序都使用這種時間戳術語。

  1. 是否有內置方法來處理此類時間戳格式?
  2. 如果沒有,推薦的處理這些格式的方法是什么?

將它們轉換為datetime64[s]

np.array([1368431149, 1368431150]).astype('datetime64[s]')
# array([2013-05-13 07:45:49, 2013-05-13 07:45:50], dtype=datetime64[s])

你也可以使用pandas to_datetime

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

此方法需要Pandas 0.18或更高版本。

您也可以像這樣使用Pandas DatetimeIndex

pd.DatetimeIndex(df['timestamp']*10**9)

*10**9將其置於預期的時間戳的格式中。

這很好,因為它允許您在系列中使用諸如.date().tz_localize()函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM