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
Libérer: 2024-10-21 15:38:29
original
758 Les gens l'ont consulté

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>
Copier après la connexion

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
    Copier après la connexion
  2. Désinstallez la version actuelle de Pandas Datareader :

    conda uninstall pandas-datareader
    Copier après la connexion
  3. Installez la version pull request de Pandas Datareader :

    pip install git+https://github.com/raphi6/pandas-datareader.git@ea66d6b981554f9d0262038aef2106dda7138316
    Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!