【问题标题】:getting financial data from yahoo finance with yfinance python使用 yfinance python 从 yahoo Finance 获取财务数据
【发布时间】:2021-01-18 02:48:39
【问题描述】:

我正在尝试使用 yfinance 包来获取金融数据框。虽然,它很好地获取信息、历史和行动,但它不适用于财务、资产负债表和其他方法,即使是不同的股票

输入

import yfinance as yf
msft = yf.Ticker("MSFT")
print(msft.financials)

输出

Empty DataFrame
Columns: [Open, High, Low, Close, Adj Close, Volume]
Index: []`

列也是错误的。 我正在寻找解决问题的方法或获取数据的其他解决方案。

【问题讨论】:

标签: python yahoo-finance yahoo-api yfinance


【解决方案1】:

这是一个已知问题,您可以在 this GitHub issue 上看到。已经解决了,但是改动还没有正式发布。

您可以在“文件已更改”部分看到您可以将更改应用于本地包代码作为快速解决方案。

【讨论】:

    【解决方案2】:

    据我了解,可以参考msft.financials,看看股票能提前得到什么样的数据。例如,是否有调整的收盘,以及数据可用的时间。您可以通过msft.history(period='max') 进行检查。

    print(msft.history(period="max"))
                  Open    High     Low   Close      Volume  Dividends  \
    Date                                                                
    1986-03-13    0.06    0.06    0.06    0.06  1031788800        0.0   
    1986-03-14    0.06    0.07    0.06    0.06   308160000        0.0   
    1986-03-17    0.06    0.07    0.06    0.07   133171200        0.0   
    1986-03-18    0.07    0.07    0.06    0.06    67766400        0.0   
    1986-03-19    0.06    0.06    0.06    0.06    47894400        0.0   
    ...            ...     ...     ...     ...         ...        ...   
    2020-09-25  203.55  209.04  202.54  207.82    29437300        0.0   
    2020-09-28  210.88  212.57  208.06  209.44    32004900        0.0   
    2020-09-29  209.35  210.07  206.81  207.26    24221900        0.0   
    2020-09-30  207.73  211.98  206.54  210.33    33829100        0.0   
    2020-10-01  213.49  213.99  211.32  212.46    27115800        0.0  
    

    您可以通过以下方式获取实际数据。

    data = yf.download("MSFT", start="2019-01-01", end="2019-04-30")
    data
        Open    High    Low Close   Adj Close   Volume
    Date                        
    2018-12-31  101.290001  102.400002  100.440002  101.570000  99.300156   33173800
    2019-01-02  99.550003   101.750000  98.940002   101.120003  98.860214   35329300
    2019-01-03  100.099998  100.190002  97.199997   97.400002   95.223351   42579100
    2019-01-04  99.720001   102.510002  98.930000   101.930000  99.652115   44060600
    2019-01-07  101.639999  103.269997  100.980003  102.059998  99.779205   35656100
    ... ... ... ... ... ... ...
    2019-04-23  124.099998  125.580002  123.830002  125.440002  123.160469  24025500
    2019-04-24  125.790001  125.849998  124.519997  125.010002  122.738281  31257000
    2019-04-25  130.059998  131.369995  128.830002  129.149994  126.803055  38033900
    2019-04-26  129.699997  130.520004  129.020004  129.889999  127.529594  23654900
    2019-04-29  129.899994  130.179993  129.350006  129.770004  127.411781  16324200
    

    【讨论】:

    • 我需要财务数据而不是股票历史finance.yahoo.com/quote/MSFT/financials?p=MSFT
    • 我也无法获得其他股票的财务报表或资产负债表。然后看起来您可以从“yahoo_fin”库中获取财务报表。看看这个site。
    • 是的,我确实设法从您提到的图书馆获得了财务报表,但其中一些似乎是错误的。我可以使用 yfinance 库获取传递服务器代理的数据作为参数吗??
    • 我会提供一个我是作者的软件包:yahooquery。获取财务信息非常简单:Ticker('msft').income_statement()。此外,传递代理也很容易:Ticker('msft', proxies={'http': ..., 'https': ...}).income_statement()
    【解决方案3】:

    在尝试安装 yahooquery 时出现以下错误。

    错误:由于 EnvironmentError 无法安装软件包:[WinError 5] 访问被拒绝:'C:\Users\xxxx\anaconda3\Lib\site-packages\~xml\etree.cp38-win32.pyd' 考虑使用--user 选项或检查权限

    您的建议将不胜感激。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 2022-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-15
      相关资源
      最近更新 更多