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!