我的申请涉及处理以下形式的数据(包含在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纪元时间戳,但找不到任何。许多应用程序都使用这种时间戳术语。
答案 0 :(得分: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])
答案 1 :(得分:14)
您还可以使用pandas to_datetime :
mapPartitions
此方法需要Pandas 0.18或更高版本。
答案 2 :(得分:1)
你也可以像这样使用Pandas DatetimeIndex
pd.DatetimeIndex(df['timestamp']*10**9)
*10**9
将其置于预期此类时间戳的格式中。
这很不错,因为它允许您在系列中使用.date()
或.tz_localize()
等功能。