根据tim将价值拆分为箱子

2024-04-24 11:42:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在Python中修改纽约市地铁旋转栅门的数据,将其转换为每个站点的入口/出口的可视化。在

到目前为止,我有一个基于开始(03-24-15)和结束(03-27-15)日期的出入口计数列表:

{
'endTime': '03-25-14T21:40:30',
'entriesDuringPeriod': 158,
'exitsDuringPeriod': 597,
'startTime': '03-25-14T17:03:23'
},
{
'endTime': '03-26-14T01:00:00',
'entriesDuringPeriod': 29,
'exitsDuringPeriod': 235,
'startTime': '03-25-14T21:00:00'
},

我遇到的问题是不同的时间段没有标准化,有时会重叠。我希望能够浏览并创建另一个列表,将这些数字规范化为一个小时的增量。在

我不太熟悉Python时间处理,我想知道是否有人可以提供一些关于如何开始获取字符串、将它们转换为日期对象以及根据时间划分值的信息。在

如果需要的话,最终的可视化将使用d3.js可视化。在


Tags: 数据列表站点可视化时间数字规范化计数
2条回答

将字符串放入datetime对象并不太坏:

from datetime import datetime
from time import time, mktime, strptime

def get_datetime( instr ):
  return datetime.fromtimestamp(mktime(strptime(instr, '%m-%d-%yT%H:%M:%S')))

# eg: get_datetime( '03-25-14T21:20:30' ) => datetime.datetime(2014, 3, 25, 21, 20, 30)

数据的装箱/规范化很大程度上取决于如何处理重叠的持续时间。。。你想假设人们以线性方式到达和离开,那么如果时间戳是一个半小时,66%会进入整小时,33%进入另一个半小时?在

编辑:根据OP的评论,以下是完整的功能代码:

^{pr2}$

解析给定时间戳的方法是:

import datetime
datetime.datetime.strptime("03-25-14T21:08:12", "%m-%d-%yT%H:%M:%S")

这将为您提供一个datetime对象,它可以与其他datetime对象相比较。 ^{} library本身包含创建任意datetime对象的所有函数,这些对象可用于排序/装箱。在

考虑到数据中的时间段是非均匀的,并且包含重叠,有几种可能的方法。如果你可以线性平均出入口,你可以用每个时间段计算每小时平均发生多少次出入,然后,给定一个小时,你可以迭代所有数据点,找出一个数据点与那一小时(即15分钟或整个小时)的重叠程度,并将数据点每小时的平均入口/出口应用于累加器,该数据点每小时的平均入口/出口由重叠百分比修改。在

伪码方面:

^{pr2}$

相关问题 更多 >