ホームページ  >  記事  >  バックエンド開発  >  Pandas Datareader を使用して Yahoo Finance データにアクセスするときに発生する「TypeError: string indices must be integers」エラーを解決する方法

Pandas Datareader を使用して Yahoo Finance データにアクセスするときに発生する「TypeError: string indices must be integers」エラーを解決する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-21 15:38:29759ブラウズ

How to Resolve the

Pandas Datareader を使用して Yahoo Finance データにアクセスするときの TypeError

Pandas Datareader を使用して Yahoo Finance から株式データを取得すると、ユーザーは「TypeError」が発生する場合があります: 文字列インデックスは整数である必要があります」というエラーが発生します。この問題は、「symbols」パラメータが文字列のリストを予期していたが、代わりに文字列を検出した場合に発生する可能性があります。

このエラーを解決するには、「symbols」パラメータが株式識別子のリストであることを確認してください。動作するコードの例を次に示します。

<code class="python">import pandas_datareader

end = "2022-12-15"
start = "2022-12-15"
stock_list = ["TATAELXSI.NS"]

data = pandas_datareader.get_data_yahoo(symbols=stock_list, start=start, end=end)

print(data)</code>

さらに、raphi6 という名前の GitHub ユーザーが、この問題の修正を含むプル リクエストを提供しました。この修正をインストールするには、次の手順に従います。

  1. 次の依存関係をインストールします。

    conda install pycryptodome pycryptodomex
  2. Pandas Datareader の現在のバージョンをアンインストールします。

    conda uninstall pandas-datareader
  3. Pandas Datareader のプル リクエスト バージョンをインストールします:

    pip install git+https://github.com/raphi6/pandas-datareader.git@ea66d6b981554f9d0262038aef2106dda7138316

あるいは、Nikhil Mulley という名前のユーザーが次のような回避策を提案しています。 pdr_override() 関数。この関数は次のように使用できます:

<code class="python">import pandas_datareader as pdr
import pandas as pd

end = "2022-12-15"
start = "2022-12-15"
stock_list = ["TATAELXSI.NS"]

stock_symbol = stock_list[0]
stock_obj = pdr.DataReader(stock_symbol, 'yahoo', start, end)
stock_data = pd.DataFrame({stock_symbol: stock_obj['Close']})
</code>

以上がPandas Datareader を使用して Yahoo Finance データにアクセスするときに発生する「TypeError: string indices must be integers」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。