【问题标题】:Finding All Data Between Two Datetime Points查找两个日期时间点之间的所有数据
【发布时间】:2014-07-07 22:19:05
【问题描述】:

我正在尝试制作一个 iPython 笔记本,用于绘制两个日期时间点之间的所有数据。我已经完成了大部分工作,我只需要完成它,这样我就可以选择开始日期和结束日期。该程序的工作是将所有这些数据存储到一个变量中。

这是一个 sn-p 数据(记住,我有 240,000 个数据点)

[datetime.datetime(2014, 6, 27, 17, 40, 55), datetime.datetime(2014,
6, 27, 17, 40, 56), datetime.datetime(2014, 6, 27, 17, 40, 57),
datetime.datetime(2014, 6, 27, 17, 40, 58), datetime.datetime(2014, 6,
27, 17, 40, 59), datetime.datetime(2014, 6, 27, 17, 41),
datetime.datetime(2014, 6, 27, 17, 41, 1), datetime.datetime(2014, 6,
27, 17, 41, 2), datetime.datetime(2014, 6, 27, 17, 41, 3),
datetime.datetime(2014, 6, 27, 17, 41, 4), datetime.datetime(2014, 6,
27, 17, 41, 5), datetime.datetime(2014, 6, 27, 17, 41, 6),
datetime.datetime(2014, 6, 27, 17, 41, 7), datetime.datetime(2014, 6,
27, 17, 41, 8), datetime.datetime(2014, 6, 27, 17, 41, 9),
datetime.datetime(2014, 6, 27, 17, 41, 10), datetime.datetime(2014, 6,
27, 17, 41, 11), datetime.datetime(2014, 6, 27, 17, 41, 12)]

它的大部分格式(年、月、日、24 小时、分钟、秒)。

我怎样才能使它像这样:

startYear = 2014 
startMonth = 6 
startDay = 27 
startHour = 17
startMinute = 40 
startSecond = 55

endYear = 2014 
endMonth = 6 
endDay = 28 
endHour = 17 
endMinute = 40
endSecond = 55

我在数据块上使用 date2num,我认为在所需日期使用 date2num 将离开,只需交叉搜索相同的数字。我只需要最终结果是这样的:

BetweenTime = (StartTime):(EndTime)

这样我就可以将 BetweenTime 插入我的图表中。

感谢任何帮助,我对 Python 比较陌生。

【问题讨论】:

  • 不确定将BetweenTime 插入图表是什么意思,您是否尝试在图表中将它们显示为文本值?或者您正在尝试将它们设置为xlim
  • 这是我的图表:prntscr.com/40m59y 我正在绘制接近 100 万个数据点。基本上,我现在正在做的是在 x 轴上插入我的时间数据,然后将其转换为日期格式。正如您在图中看到的那样,该部分已经完成。我只需要制作它,这样我就可以选择特定的时间窗口来查看。

标签: python arrays datetime matplotlib


【解决方案1】:

Datetime 对象具有可比性(参见https://docs.python.org/2/library/datetime.html#datetime.datetime.date 中的“datetime1

sDate = datetime(starYear,...,startSecond) #fill this in
eDate = datetime(endYear,...,endSecond) #fill this in
for i in data:
    if i >= sDate and i <= eDate:
         #DO SOMETHING WITH i IT SHOULD BE INCLUDED

【讨论】:

  • 或者,您可以写:sDate &lt;= i &lt;= eDateLook here.
  • 两者都可以。如果有人有数学背景,那就更直观了(python 非常适合这个),我认为对于可能习惯于 C 的程序员来说,我认为 if (COND1) && (COND2)...
  • 遇到了另一个问题,可能是代码中的其他问题。我感谢您的帮助!谢谢!
  • 等等,我遇到了问题。我只得到一个值回来。这是截图:prntscr.com/40mi7g我做错了吗?我需要将 startDate 和 endDate 之间的所有数据存储到一个变量中。
  • 您每次都将 betweentime 重置为 i;你需要附加它。有类似 betweentime += i 的东西,或者将 betweentime 列一个列表并执行 betweentime.append[i]。不确定您需要的格式。
猜你喜欢
  • 2021-01-07
  • 1970-01-01
  • 2020-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多