Home >Backend Development >Python Tutorial >How to Resolve the \'TypeError: string indices must be integers\' Error when Accessing Yahoo Finance Data with Pandas Datareader?
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:
Install the following dependencies:
conda install pycryptodome pycryptodomex
Uninstall the current version of Pandas Datareader:
conda uninstall pandas-datareader
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!