2017-05-22 21 views
2

Yahoo FinanceのURLは、2017年5月16日以降、Pandas DataReaderの「yahoo」メソッドを使用してアクセスできませんでした。この修正プログラムをまだテストしていません。https://pypi.python.org/pypi/fix-yahoo-finance昨日、「Yahoo!ファイナンスは過去のデータAPIを廃止しました」という声明を発表しました。Yahoo Finance API/URLが機能しない:Pandas DataReaderのPython修正

編集:2001年8月2日https://pypi.python.org/pypi/fix-yahoo-financeの手順に従っています:$ pip3 install fix_yahoo_finance --upgrade --no-cache-dir、 "fix-yahoo-finance 0.0.6"で動作するようにpandas_datareaderをアップグレードしました。 、および修正されたコード:

from pandas_datareader import data as pdr 
import fix_yahoo_finance 

data = pdr.get_data_yahoo('AAPL', start='2017-04-23', end='2017-05-24') 

最後の2つのデータ列の順序は、「Adj Close」および「Volume」です。以前の形式ではありません。私の目的のために、彼らは単に元のフォーマットにリセットされます:

cols = ['Date', 'Open', 'High', 'Low', 'Close', 'Volume', 'Adj Close'] 
data.reindex(columns=cols) 

答えて

0

私はhttps://pypi.python.org/pypi/fix-yahoo-financeにの手順に従ってきました。最後の2つのデータ列の順序は、「調整]閉じる」であり、「ボリューム」という

from pandas_datareader import data as pdr 
import fix_yahoo_finance 

data = pdr.get_data_yahoo('BHP.AX', start='2017-04-23', end='2017-05-24') 

注:

「修正-ヤフーファイナンス0.0.6は」BHP.AX例えば、よく働いすなわち、以前の形式ではありません。私の目的のために、彼らは元のフォーマットにリセットされます:

cols = ['Date', 'Open', 'High', 'Low', 'Close', 'Volume', 'Adj Close'] 
data.reindex(columns=cols) 
1

私はQuandlを使用することをお勧めします。ヤフーが買収後に信頼できるかどうかはわかりません。 Quandlでは、複数のシンボルがある場合はループする必要があります。 docsを読むと、このような何かを:fix_yahoo_finance --upgrade --no-キャッシュ・ディレクトリをインストール$ PIP3とも確かにpandas_datareaderをアップグレード:

import quandl as qdl 
    start_date = '2016-01-01' 
    end_date = '2017-05-22' 
    for symbol in symbols: 

     quandldata = qdl.get_table("WIKI/PRICES",qopts={"columns":["date", "adj_close"]}, 
     ticker=symbol, date = {'gte': start_date,'lte' : end_date}) 
     # specify that the quandldata df has index col = 'date' 
     quandldata = quandldata.set_index(["date"], drop=True) 
     # rename col adj close to the respective symbol to prevent clash w/ same name for all cols 
     quandldata = quandldata.rename(columns={'adj_close': symbol}) 
     df = df.join(quandldata) 
+0

ありがとう、私はQuandlがASX株のデータを提供しているかどうかわかりません。 1つのデータベンダeoddata.comが一見価値があるかもしれません。 – artDeco

+0

私は20分の株式を取得することができ、10分ごとに制限時間があります。 10分の制限時間内に20個以上の在庫を超えると、エラーがポップアップし、コードが破損します。だからS&P500から505株すべてを取得したいのであれば、4.2時間((505株/ 20株)* 10分)/ 60分という最小時間がかかります。それは非常に非効率的です。ヤフーでpandas_datareaderを使用してMSFTの在庫データを取得しようとすると、 "YAHOO!右に戻る"というエラーから得たリンクをクリックしてください。 'https://ichart.finance.yahoo.com/table.csv?s = MSFT&a = 0&b = 1&c = 2016&d = 0&e = 1&f = 2017&g = d&ignore = .csv' – MichaelRSF

+0

Quandlでは、アカウント。あなたがすると、あなたは2000コール/ 10分を得るでしょう。 –

2
import pandas_datareader.data as pdweb 
from pandas_datareader import data as pdr 
import fix_yahoo_finance # must pip install first 
data = pdr.get_data_yahoo('SPY','2017-05-20','2017-05-23') 
data = pdr.get_data_yahoo(['SPY','QQQ'],'2017-05-01','2017-05-23', as_panel=False,group_by = 'ticker') 
0

私はuser3443068答えが簡単です。

私はまた、Googleのソースとしてyahooインスタンスがおそらく会社の行くところにある多くの廃止予定バージョンを通過すると考えています。

def get_ret(tickers_ls, start_dt, end_dt): 
     #create dataframe 
     df_ret=pd.DataFrame() 

     #get prices for all tickers 
     for tk in tickers: 
      p = wb.DataReader(tk, "google", start_date, end_date).Close 
      df_ret_tmp = p.to_frame()['Close'].reset_index() 
      df_ret_tmp['Ticker']=tk 
     ## append 
      df_ret=df_ret.append(df_ret_tmp) 

     #pivot and get into single dataframe 
     pivoted = df_ret.pivot(index='Date', columns='Ticker') 
     pivoted.columns = pivoted.columns.droplevel(0) 

     return pivoted 
+0

Googleはスプリットの価格を調整するため実際には実行可能な選択肢ではありませんが、配当についてはそうではありません – user1452494

関連する問題