首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写循环,以便在Python中的某些特定期间获取数据。

编写循环,以便在Python中的某些特定期间获取数据。
EN

Stack Overflow用户
提问于 2015-03-06 05:14:15
回答 1查看 755关注 0票数 1

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

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

就像我想要从2015-01-01到今天的数据。

代码语言:javascript
复制
import tushare as ts

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-06 05:19:50

Loop over a date range day-by-day并使用strftime()将日期转换为字符串:

代码语言:javascript
复制
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

演示:

代码语言:javascript
复制
>>> 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。除了其他功能外,它还内置了对日期范围迭代的支持。

代码语言:javascript
复制
>>> 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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28892722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档