0

我有一个dataset我试图在 GraphLab 中操作的。我想将输入文件(转换为 SFrame)中的 UNIX Epoch 时间戳转换为人类可读的格式,以便我可以根据一天中的小时和一周中的一天进行分析。

time_array 是SFrame sf表示时间戳的列/特征,我已经打破了 EPOCH 时间以简化事情。我知道如何转换一行的时间,但我想要一个向量运算。这是我的一排。

time_array = sf['timestamp']

datetime.datetime.fromtimestamp(time_array[0]).strftime('%Y-%m-%d %H')
4

3 回答 3

1

您还可以从时间戳中获取部分时间以创建另一列,通过该列进行过滤(例如,获取小时):

sf['hour'] = [x.strftime('%H')for x in sf['timestamp']]
于 2016-03-18T22:28:34.347 回答
0

您还可以使用split_datetimeAPI 将时间戳拆分为多个列:

split_datetime('timestamp',limit=['hour','minute'])
于 2016-08-04T03:18:10.250 回答
0

因此,在盯着这个问题看了一会儿,然后把它发给我的问题贴出来之后,希望其他人也能从中受益。使用.apply带有datetime.datetime()函数的方法

sf['date_string'] = sf['timestamp'].apply(lambda x:    datetime.datetime.fromtimestamp(x).strftime('%Y-%m-%d %H'))
于 2015-10-21T05:21:26.470 回答