【问题标题】:Yfinance: downloading multiple parameters (beta, mkt cap, etc.) for multiple stocks at the same time?Yfinance:同时下载多只股票的多个参数(beta、市值等)?
【发布时间】:2021-06-05 03:38:47
【问题描述】:

我正在尝试使用 Yfinance 将一些标准普尔股票()的行业、beta 和市值()等信息下载到单个熊猫数据框中>)。在下面的简化示例中,它是 3 只股票的行业和 beta。

  1. 如何使代码自动化,这样我就不必每次都使用 info.get() 了?除了行业和测试版之外,我计划下载大约 10 个不同的参数...
  2. 将当前输出(列表)转换为我上面概述的 pandas 数据框的最佳方法是什么?谢谢!

import yfinance as yf
stocks = ['JNJ', 'MSFT','GS']
df=[]
    for stock in stocks: 
    info = yf.Ticker(stock).info
    industry = info.get('industry')
    beta = info.get('beta')
    df.extend((stock,industry,beta))
print(df)

===== 输出 ====

['JNJ', 'Drug Manufacturers—General', 0.711267, 'MSFT', 'Software—Infrastructure', 0.812567, 'GS', 'Capital Markets', 1.484832]

【问题讨论】:

    标签: python pandas finance yahoo-finance yfinance


    【解决方案1】:

    '.info'的返回值是dict格式,拿到后就可以解压了。将其放入数据框中并列出。

    import yfinance as yf
    import pandas as pd
    
    stocks = ['JNJ', 'MSFT','GS']
    
    df = pd.DataFrame()
    
    for stock in stocks: 
        info = yf.Ticker(stock).info
        industry = info['industry']
        beta = info['beta']
        marketcap = info['marketCap']    
        df = df.append({'Stock':stock,'Industry':industry,'Beta':beta,'marketcap':marketcap}, ignore_index=True)
        
    print(df)
           Beta                    Industry Stock     marketcap
    0  0.711267  Drug Manufacturers—General   JNJ  4.103370e+11
    1  0.812567     Software—Infrastructure  MSFT  1.746778e+12
    2  1.484832             Capital Markets    GS  1.132026e+11
    

    指定第一列

    df = pd.DataFrame(columns=['Stock','Industry','Beta','Marketcap'])
    

    最后,更改列顺序。

    df.columns = ['Stock','Industry','Beta','Marketcap']
    

    【讨论】:

    • 如果我的回答对你有帮助,请考虑接受它作为正确答案并给它1+,谢谢!
    • 谢谢! 2个问题:如何确保 df 的列按我想要的顺序排列?我想在第一列中有股票代码。***其次,我怎样才能自动化 info['xyz'] 函数,这样我就不必一遍又一遍地为行业、市值、beta 编写它等等?我试过并得到错误“unhashable type:'list'”
    • 由于它是添加到一个空数据框中的,因此列顺序是按字母顺序排列的,因此您可以在第一个数据框中指定列,也可以在最后将列顺序更改为所需的列。您可以在第一个数据框中指定列,也可以在最后将顺序更改为所需的列。
    猜你喜欢
    • 2021-03-23
    • 2020-06-18
    • 2022-09-25
    • 2018-09-17
    • 2019-04-08
    • 2022-01-04
    • 2021-04-07
    • 2020-09-15
    相关资源
    最近更新 更多