【问题标题】:python multiple time-stamps into pandas.tslib.Timestamppython将多个时间戳转换为pandas.tslib.Timestamp
【发布时间】:2015-04-02 14:25:02
【问题描述】:

我有一个包含时间戳的 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")

这很慢,显然有一种方法可以一次性完成。 请指教。 谢谢!

【问题讨论】:

    标签: python datetime timestamp strptime


    【解决方案1】:
    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 在某些时候不起作用,所以我避免使用它。原来它仍然是解决方案...

    【讨论】:

      猜你喜欢
      • 2014-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-22
      • 2019-02-03
      • 1970-01-01
      • 2019-01-05
      相关资源
      最近更新 更多