如何修复“'pandas.compat'没有属性'string_types'”在python3中的错误

时间:2019-08-02 22:24:22

标签: python python-3.x pandas

我正在观看this教程,在这里我试图使用iexfinance获取库存数据。您可以在请求数据时选择数据类型,我选择了“ pandas”。当我运行内置函数时,出现读取为AttributeError: module 'pandas.compat' has no attribute 'string_types'

的错误

我正在使用python 3.7。我已经卸载并重新安装了iexfinance和pandas。我还创建了一个IEX云帐户,并像文档说明中那样传递了一个秘密密钥,但是存在相同的错误。本教程没有提到任何这些步骤,也没有提到为什么他的作品和我的作品没有引起人们的困惑。

我试图通过以下网站上的示例简化代码:即使在运行时:

from iexfinance.stocks import Stock

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

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

错误仍然存​​在

预期输出为:

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

我收到的输出是:

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'

3 个答案:

答案 0 :(得分:3)

您可以尝试将熊猫版本恢复为0.24.2:

pip install pandas==0.24.2

在这一点上,我仍然不确定熊猫中是否有错误或其他错误。

编辑:也许iexfinance在Pandas中使用了一些内部组件,并且pandas进行了重大更改,删除了python 2和所有兼容代码。

这也已经在他们的问题跟踪器上: https://github.com/addisonlynch/iexfinance/issues/163

答案 1 :(得分:0)

关于以下方法:     点安装pandas == 0.24.2 是的〜试试这个。

答案 2 :(得分:0)

到目前为止, 2019年10月2日,只需将iexfinance更新为最新版本(0.4.3),即可解决问题。
这样做:

pip install iexfinance --upgrade