【问题标题】:Getting TTM income statement yahoo finance using yahoo_fin使用 yahoo_fin 获取 TTM 损益表 yahoo Finance
【发布时间】:2022-08-06 01:06:26
【问题描述】:

我尝试通过使用获取股票代码 AAPL 损益表的 ttm 值

from yahoo_fin import stock_info as si
import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt
import pandas_datareader

pd.set_option(\'display.max_columns\', None)

income_statement = si.get_income_statement(\"aapl\")
income_statement

但结果不显示 ttm 值,只显示年度值

在yahoo Finance上,我们还可以看到ttm值:

有谁能帮忙吗?

    标签: python pandas yahoo-finance


    【解决方案1】:

    你没有得到你在网站上看到的完全相同的表的原因是因为 yahoo_fin 从雅虎获取数据的方式。他们不是从您看到的表中获取它们,而是从 Yahoo 提供的 json 数据中获取它们。在这些数据中,有季度和年度损益表。当雅虎在他们的网站上呈现表格时,他们最有可能使用年度列的年度数据,然后将最后 4 个季度结果相加得到 TTM 列(因为 TTM 结果只不过是最后 4 个季度结果的总和) .

    如果您想获取 TTM 数据,最好的方法是按照我假设 Yahoo 的方式进行。使用yahoo_fin 获取季度数据,然后对季度求和以计算 TTM 结果。您可以通过将可选的yearly 参数设置为False 来做到这一点:

    quarterly_income_statement = si.get_income_statement("aapl", yearly=False)
    

    您可以查看他们的方法_parse_json,以更好地了解他们如何从雅虎获取和解析数据。 (假设您对请求和 json 有一定的了解。)

    汇总数据

    例如,要获得季度的总和,您可以这样做:

    quarterly_income_statement = si.get_income_statement("aapl", yearly=False)
    ttm = quarterly_income_statement.sum(axis=1)
    

    这将为您提供一个新的Dataframettm,其中包含相同的数据字段,其值为 TTM(您可以对其进行测试,看看它是否与网站上的数字匹配)。

    【讨论】:

    • 非常感谢FIlip Müller。也许你可以帮助我。我如何总结 4 个季度,我不是一个真正的程序员,并且很难解决这个问题。泰!
    • 我添加了一种方法来将数据汇总到一个新的 Dataframe 中。如果您想将数据修改为不是浮点数而是整数,或者将 TTM 列连接到年度数据框,您会在网上找到很多关于此的信息。
    猜你喜欢
    • 2016-05-28
    • 2023-01-21
    • 2021-03-02
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多