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

Nip*_*tra 11 python numpy time-series pandas

我的申请涉及处理以下形式的数据(包含在CSV中):

Epoch (number of seconds since Jan 1, 1970), Value
1368431149,20.3
1368431150,21.4
..
Run Code Online (Sandbox Code Playgroud)

目前我使用numpy loadtxt方法读取CSV(可以很容易地使用来自Pandas的read_csv).目前我的系列我正在转换时间戳字段如下:

timestamp_date=[datetime.datetime.fromtimestamp(timestamp_column[i]) for i in range(len(timestamp_column))]
Run Code Online (Sandbox Code Playgroud)

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

  1. 是否有内置方法来处理此类时间戳格式?
  2. 如果没有,推荐的处理这些格式的方法是什么?

eum*_*iro 19

将它们转换为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])
Run Code Online (Sandbox Code Playgroud)


que*_*ise 15

你也可以使用pandas to_datetime:

df['datetime'] = pd.to_datetime(df["timestamp"], unit='s')
Run Code Online (Sandbox Code Playgroud)

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