2017-04-21 45 views
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) 

反正有吗?

+0

将所有数据导入一个数据框,然后按季节分割。 – DyZ

回答

2

假设你的目标春季个月(至4月30日,也许1月1日,如有变更),您可以创建日期tuples其中每个tuple有效,对于一个给定的yearstart日期endlist。例如,list的第一个元素将是(datetime.datetime(2000, 1, 1, 0, 0), datetime.datetime(2000, 4, 30, 0, 0))。这将是自一月1日至4月30日在2000年

一旦你有你的约会tupleslist,你可以遍历它们并获取数据的startend日期的每个组合。结果也将是list,但这一次将是pandaslist DataFrames,您可以非常容易地连接在一起以获取所需的数据集。以下应作为工作脚本:

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 

我希望这有助于。

相关问题