Home > Backend Development > Python Tutorial > 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
Release: 2024-10-21 15:38:29
Original
863 people have browsed it

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>
Copy after login

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
    Copy after login
  2. Uninstall the current version of Pandas Datareader:

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

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

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>
Copy after login

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!

source:php
Statement of this Website
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template