我有一个以UNIX epoch时间戳为键的数据条目dict,还有一些值(可以是Boolean、int、float、枚举字符串)。我正在尝试设置一个方法,该方法使用开始时间、结束时间和存储箱大小(x分钟、x小时或x天),在这些时间之间将dict中的值放入其中一个存储箱的数组中
从本质上讲,我尝试将在某个特定时间测量的真实世界中的数据转换为发生在某个时间步长上的数据,从time=0开始,一直到time=T,在调用方法时可以设置时间步长的长度
我试着按照以下思路做一些事情:
def binTimeSeries(dict, startTime, endTime, timeStep):
bins = []
#floor begin time to a timeStep increment
#ciel end time to a timeStep increment
for key in dict.keys():
if key > floorStartTime and key < cielEndTime:
timeDiff = (key - floorStartTime)
binIndex = floor(timeDiff/timeStep)
bins[binIndex].append(dict[key])
我很难确定什么时间格式适合从UNIX epoch timestamp转换为,它可以处理给定变量floor
、ciel
和modulo
间隔的timeStep
操作,然后如何实际执行这些操作。我已经搜索了这个,但是我对datetime
,pandas
的形式主义感到困惑,哪个更适合这个
也许是这样的?与其问垃圾箱的大小(每个垃圾箱的间隔),不如问你想要多少个垃圾箱。这样你就可以保证每个箱子大小相同(覆盖相同的间隔)
在下面的示例中,我生成了一些伪数据,我称之为
data
。我随意选择的开始和结束时间戳,以及箱子的数量。我计算结束时间戳和开始时间戳之间的差异,我称之为duration
,这会产生两个时间戳之间的总持续时间(我意识到重新计算这个值有点愚蠢,就像我之前在end_time_stamp
定义中硬编码它一样,但它只是为了完整性而存在)。bin_interval
(以秒为单位)可以通过将持续时间除以箱子的数量来计算最后我做了所有的事情,只使用普通的旧UNIX/POSIX时间戳,没有任何转换。但是,我将提到
datetime.datetime
有一个名为fromtimestamp
的方法,它接受POSIX时间戳并返回一个填充了年、月、秒等的datetime对象此外,在我的例子中,我最后添加到垃圾箱的只有钥匙-只是为了演示-您必须修改它以满足您的需要
输出:
相关问题 更多 >
编程相关推荐