Pandas:使用 Unix 纪元时间戳作为日期时间索引

2022-01-11 00:00:00 python numpy pandas time-series

问题描述

我的应用程序涉及处理以下形式的数据(包含在 CSV 中):

My application involves dealing with data (contained in a CSV) which is of the following form:

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

目前我使用 numpy loadtxt 方法读取 CSV(可以轻松使用 Pandas 的 read_csv).目前对于我的系列,我将时间戳字段转换如下:

Currently i read the CSV using numpy loadtxt method (can easily use read_csv from Pandas). Currently for my series i am converting the timestamps field as follows:

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

我通过将 timestamp_date 设置为我的 DataFrame 的日期时间索引来遵循这一点.我尝试在几个地方搜索以查看是否有使用这些 Unix 纪元时间戳的更快(内置)方式,但找不到任何方法.许多应用程序都使用这种时间戳术语.

I follow this by setting timestamp_date as the Datetime index for my DataFrame. I tried searching at several places to see if there is a quicker (inbuilt) way of using these Unix epoch timestamps, but could not find any. A lot of applications make use of such timestamp terminology.

  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])

相关文章