1

我想从熊猫导入数据 10 年。但我需要每个季节单独导入。例如 2000 年至 2010 年春季期间的所有数据。

我有以下代码,但这并没有分开季节。

import pandas_datareader.data as web
import datetime
start = datetime.datetime(2000, 1, 1)
end = datetime.datetime(2010, 1, 1)
f = web.DataReader("F", 'yahoo', start, end)

反正有吗?

4

1 回答 1

2

假设您的目标是春季月份(可能是 1 月 1 日到 4 月 30 日,可能会发生变化),您可以创建一个list日期tuples,其中每个日期都tuple包含给定的startend日期year。例如, 的第一个元素list(datetime.datetime(2000, 1, 1, 0, 0), datetime.datetime(2000, 4, 30, 0, 0)). 这将是 2000 年 1 月 1 日至 4 月 30 日。

一旦你有了你list的日期tuples,你就可以遍历它们并为每个日期组合获取start数据end。结果也将是 a list,但这次将是listDataFrames 的pandasa,您可以很容易地将它们连接在一起以获得所需的数据集。以下应作为工作脚本:

import pandas_datareader.data as web
import datetime
import pandas as pd


all_dates = [(datetime.datetime(year, 1, 1), datetime.datetime(year, 4, 30)) for year in range(2000, 2011)]
f = pd.concat([web.DataReader("F", 'yahoo', start, end) for start, end in all_dates], axis=1)

print(f.tail())

#             Close       Volume  Adj Close  
# Date                                       
# 2010-04-26  14.46  123029200.0  11.684445  
# 2010-04-27  13.57  292667400.0  10.965278  
# 2010-04-28  13.25  208023500.0  10.706701  
# 2010-04-29  13.58  110114400.0  10.973358  
# 2010-04-30  13.02  146322900.0  10.520849  

我希望这有帮助。

于 2017-04-21T16:51:12.797 回答