+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

编写循环以在Python中的某些特定时期获取数据

发布于2020-08-23 15:50     阅读(1103)     评论(0)     点赞(30)     收藏(5)


我想为特定日期时间段的多只股票编写一个循环。

以下代码每次只能获取一天的数据。所以我想在函数外部编写一个循环。之后,我想将所有这些库存数据联系到DataFrame中。

就像我想要2015年1月1日到今天的数据一样。

import tushare as ts

ticker = ['002428', '600030', '600031', '002437', '300399']
df = ts.get_tick_data(ticker,'2014-01-09')
df.head(10)

解决方案


逐日遍历日期范围,并用于strftime()将日期转换为字符串:

from datetime import timedelta, datetime

def daterange(start_date, end_date):
    for n in range(int((end_date - start_date).days)):
        yield start_date + timedelta(n)


start_date = datetime(year=2015, month=1, day=1)
end_date = datetime.today()

for single_date in daterange(start_date, end_date):
    value = single_date.strftime("%Y-%m-%d")

    print value

演示:

>>> start_date = datetime(year=2015, month=1, day=1)
>>> end_date = datetime.today()
>>> for single_date in daterange(start_date, end_date):
...     value = single_date.strftime("%Y-%m-%d")
...     print value
... 
2015-01-01
2015-01-02
...
2015-03-03
2015-03-04
2015-03-05

还有一个很棒的库用于处理日期和时间,称为delorean除了其他功能,它还内置了对日期范围迭代的支持

>>> import delorean
>>> from delorean import stops
>>> for stop in stops(freq=delorean.DAILY, timezone="US/Eastern", start=start_date, stop=end_date):
...     value = stop.date.strftime("%Y-%m-%d")
...     print value
... 
2015-01-01
2015-01-02
2015-01-03
...
2015-03-04
2015-03-05
2015-03-06


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/493891/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

30 0
收藏该文
已收藏

评论内容:(最多支持255个字符)