3
votes

Comment réparer l'erreur "'pandas.compat' n'a pas d'attribut 'string_types'" dans python3

Je suis en train de regarder ce tutoriel dans lequel j'essaie d'utiliser iexfinance pour obtenir des données boursières. Vous avez la possibilité de choisir le type de données lors de la demande de données, j'ai choisi "pandas". Lorsque j'exécute la fonction intégrée, j'obtiens une erreur qui lit AttributeError: le module 'pandas.compat' n'a pas d'attribut 'string_types'

J'utilise python 3.7. J'ai désinstallé et réinstallé à la fois iexfinance et pandas. J'ai également créé un compte cloud IEX et passé une clé secrète comme les états de la documentation, mais la même erreur. Le didacticiel ne mentionne aucune de ces étapes et il est difficile de comprendre pourquoi ses œuvres et les miennes ne le sont pas.

J'ai essayé de simplifier le code en suivant des exemples sur le site Web: Même en cours d'exécution:

Traceback (most recent call last):
  File "app.py", line 18, in <module>
    df = Stock("AAPL", output_format="pandas")
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/iexfinance/stocks/base.py", line 45, in __init__
    self.symbols = list(map(lambda x: x.upper(), _handle_lists(symbols)))
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/iexfinance/utils/__init__.py", line 43, in _handle_lists
    if isinstance(l, (compat.string_types, int)):
AttributeError: module 'pandas.compat' has no attribute 'string_types'

L'erreur persiste

Le résultat attendu est:

                      AAPL
avgTotalVolume    30578248
calculationPrice     close
change               -0.58
changePercent     -0.00298
close               207.27

Le résultat que je reçois est:

from iexfinance.stocks import Stock

df = Stock("AAPL", output_format="pandas")

print(df.get_quote().head())


0 commentaires

3 Réponses :


5
votes

Vous pouvez essayer de revenir à la version 0.24.2 de pandas pour contourner le problème:

pip install pandas == 0.24.2

À ce stade, je ne suis toujours pas sûr qu'il y ait un bug dans les pandas ou autre chose.

EDIT: Iexfinance utilise probablement des composants internes dans Pandas, et pandas a subi un changement majeur en supprimant python 2 et tout le code de compatibilité.

Ceci est également déjà sur leur outil de suivi des problèmes: https://github.com/addisonlynch/iexfinance/issues/163


1 commentaires

Wow, cela semblait fonctionner. Merci beaucoup pour le conseil!



1
votes

La méthode sur: pip installer pandas == 0.24.2 a raison ~ essayez ceci.


0 commentaires

0
votes

À ce jour, le 2 octobre 2019 , il suffit de mettre à jour iexfinance avec la dernière version (0.4.3) et le problème est résolu.
Faites ceci:

pip install iexfinance --upgrade


0 commentaires