【问题标题】:python - iteration by date and time - half hourpython - 按日期和时间迭代 - 半小时
【发布时间】:2017-07-23 14:09:38
【问题描述】:

我考虑如何通过以下方式按数据和时间进行迭代:

2016-06-10,00:00
2016-06-10,01:30
2016-06-10,02:00
2016-06-10,02:30
....

有人可以帮我吗?

【问题讨论】:

  • 你试过用熊猫吗?使用 Pandas 很容易做到这一点。
  • 不太确定是要创建一个像您展示的那样的表格,还是每 30 分钟循环一次以执行一些其他操作。如果是后者,可以参考:stackoverflow.com/questions/153584/…

标签: python datetime


【解决方案1】:

使用timedelta 生成一系列datetime 对象:

from datetime import timedelta, datetime

start_date = datetime(2016, 6, 9, 5, 0, 0)
for td in (start_date + timedelta(minutes=30*it) for it in xrange(10)):
    print td.strftime("%Y-%m-%d,%H:%M")

输出:

2016-06-09,05:00
2016-06-09,05:30
2016-06-09,06:00
2016-06-09,06:30
2016-06-09,07:00
2016-06-09,07:30
2016-06-09,08:00
2016-06-09,08:30
2016-06-09,09:00
2016-06-09,09:30

【讨论】:

  • 要与 python3 兼容,您需要在 print 中加上括号。此外,您需要将 xrange() 替换为 range()。谢谢!
【解决方案2】:
import datetime
from datetime import timedelta

format = "%Y-%m-%d,%H:%M"

start = datetime.datetime(2016, 6, 10, 0, 0)

minutes = 0

for i in range(6):
    print (start + timedelta(minutes=minutes)).strftime(format)
    minutes += 30

输出:

$ python timespan.py  
2016-06-10,00:00  
2016-06-10,00:30  
2016-06-10,01:00  
2016-06-10,01:30  
2016-06-10,02:00  
2016-06-10,02:30  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 2018-10-22
    • 2019-07-21
    • 1970-01-01
    相关资源
    最近更新 更多