Home  >  Article  >  Backend Development  >  How to Resolve the \"TypeError: string indices must be integers\" Error when Accessing Yahoo Finance Data with Pandas Datareader?

How to Resolve the \"TypeError: string indices must be integers\" Error when Accessing Yahoo Finance Data with Pandas Datareader?

Linda Hamilton
Linda HamiltonOriginal
2024-10-21 15:38:29759browse

How to Resolve the

TypeError when Accessing Yahoo Finance Data with Pandas Datareader

When retrieving stock data from Yahoo Finance using Pandas Datareader, users may encounter a "TypeError: string indices must be integers" error. This issue can arise when the 'symbols' parameter expects a list of strings but instead encounters a string.

To resolve this error, ensure that the 'symbols' parameter is a list of stock identifiers. Here's an example of a working code:

<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>

Additionally, a GitHub user named raphi6 has provided a pull request with a fix for this issue. To install this fix, follow these steps:

  1. Install the following dependencies:

    conda install pycryptodome pycryptodomex
  2. Uninstall the current version of Pandas Datareader:

    conda uninstall pandas-datareader
  3. Install the pull request version of Pandas Datareader:

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

Alternatively, a user named Nikhil Mulley has suggested a workaround involving the pdr_override() function. This function can be used as follows:

<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>

The above is the detailed content of How to Resolve the \"TypeError: string indices must be integers\" Error when Accessing Yahoo Finance Data with Pandas Datareader?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn