2017-04-21 46 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 

我希望這有助於。

相關問題