我有一个包含时间戳的DF,例如,
0 2014-12-18 10:47:37
1 2014-12-18 10:47:37
2 2014-12-18 10:47:37
3 2015-01-30 04:50:49
4 2015-03-01 11:16:41
我想把它分成每个30分钟的时间段。我认为这样做的方法是将时间戳转换为' pandas.tslib.Timestamp'比划时代并将它们分成垃圾箱。 但。转换为datetime.datetime.strptime的第一步仅适用于字符串,而不适用于数据帧或列表。因此,我发现将整个DF转换为pandas.tslib.Timestamp的唯一方法是逐行:
for k in range(len(tbl)):
tbl.iloc[k] = datetime.datetime.strptime(str(tbl[k]),"%Y-%m-%d %H:%M:%S")
这很慢,显然有一种方法可以单枪匹马。 请指教。 谢谢!
答案 0 :(得分:0)
def time_norm(tmp,delta_T):
epoch_ms = tmp.astype(np.int64)//1000000L
tbl = epoch_ms//delta_T
tbl = tbl - tbl.min()
return tbl
delta_T = 1000 #1 sec
tmp = pd.to_datetime(tbl)
tbl = time_norm(tmp,delta_T)
在某些时候,pd.to_datetime在某些时候没有工作,所以我避免使用它。事实证明它仍然是解决方案......