你如何从雅虎财经中提取每周的历史数据?

mlo*_*mlo 6 python time-series yahoo-finance pandas

import datetime   
import pandas.io.data

sp  =  pd.io.data.get_data_yahoo('^IXIC',start = datetime.datetime(1972, 1, 3),
                       end = datetime.datetime(2010, 1, 3))
Run Code Online (Sandbox Code Playgroud)

我已经使用了上面的示例,但是当我想每周一次时,它只会将DAILY数据拉入数据帧.它似乎没有get_data_yahoo一个参数,您可以选择从每日,每周或每月,如雅虎本身提供的选项.您知道的任何其他包或想法可能会促进这一点吗?

unu*_*tbu 5

您可以使用以下asfreq方法进行下采样:

sp = sp.asfreq('W-FRI', method='pad')
Run Code Online (Sandbox Code Playgroud)

pad方法将向前传播最后一个有效的观察结果。

使用resample(如@tshauck 所示)是另一种可能性。使用asfreq如果你要保证你的下采样值是原始数据集找到的值。使用resample,如果你想从原始数据集的行集合组(例如,通过采取平均值)。reindex如果原始数据集在重新索引指定的日期没有值,则可能会引入 NaN 值——尽管(正如@behzad.nouri 指出的那样)您也可以method=pad在这里传播最后的观察结果。