pandas 不建议使用frame.append()方法

ca1c2owp  于 2023-01-24  发布在  其他
关注(0)|答案(2)|浏览(787)
import os
import yahoo_fin.stock_info as si

tickers = ["aapl","msft","fb"]
for ticker in tickers:
    try:
        quote = si.get_quote_table(ticker)
        price = (quote["Quote Price"])
        print (ticker, price)
        
    except:
        pass

当运行这段代码时,我得到这个错误:
FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
有人能告诉我如何修改代码吗?

xqnpmsa8

xqnpmsa81#

因为你没有使用panda,这看起来像是yahoo_fin模块的问题。GitHub有一个关于这个问题的开放问题here
看起来 stock_info.py 的第295、302和336行是源代码中的问题。我已经打开了一个pull request来修复这个问题。有问题的行如下:

data = tables[0].append(tables[1])

我的公关把它们改成了这个

data = pd.concat([tables[0], tables[1]])

如果你不耐烦,不能等待上游合并PR,那么你可以自己应用补丁,从源代码构建。

h7wcgrx3

h7wcgrx32#

我从来没有使用过yahoo_fin,但是根据你的代码和警告,这个库的开发人员需要修改(使用concat方法代替append)。同时你可以继续使用它,忽略警告,或者你可以为他们的代码库做贡献,或者派生它,自己修改。
希望能有所帮助,

  • K

相关问题