Maison  >  Article  >  développement back-end  >  Comment résoudre l'erreur « TypeError : les indices de chaîne doivent être des entiers » lors de l'accès aux données Yahoo Finance avec Pandas Datareader ?

Comment résoudre l'erreur « TypeError : les indices de chaîne doivent être des entiers » lors de l'accès aux données Yahoo Finance avec Pandas Datareader ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-21 15:38:29762parcourir

How to Resolve the

TypeError lors de l'accès aux données Yahoo Finance avec Pandas Datareader

Lors de la récupération des données boursières de Yahoo Finance à l'aide de Pandas Datareader, les utilisateurs peuvent rencontrer une "TypeError : les indices de chaîne doivent être des entiers". Ce problème peut survenir lorsque le paramètre « symboles » attend une liste de chaînes mais rencontre à la place une chaîne.

Pour résoudre cette erreur, assurez-vous que le paramètre « symboles » est une liste d'identifiants de stock. Voici un exemple de code fonctionnel :

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

De plus, un utilisateur de GitHub nommé raphi6 a fourni une pull request avec un correctif pour ce problème. Pour installer ce correctif, suivez ces étapes :

  1. Installez les dépendances suivantes :

    conda install pycryptodome pycryptodomex
  2. Désinstallez la version actuelle de Pandas Datareader :

    conda uninstall pandas-datareader
  3. Installez la version pull request de Pandas Datareader :

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

Alternativement, un utilisateur nommé Nikhil Mulley a suggéré une solution de contournement impliquant la fonction pdr_override(). Cette fonction peut être utilisée comme suit :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn