Python 金融:创建一个由总资产价值组成的 DataFrame列 = 许多股票代码;行 = 日期

问题描述

我想知道python代码以获得这样的东西:

enter image description here

我们在行上有日期,在列上有各种股票代码(例如所有 sp500 公司)和价值是他们的总资产。

只有一家公司的代码是这样的: enter image description here

但我不能为数百家公司做这件事。你能帮助我吗?我提前谢谢你!

解决方法

我创建了一个代码来获取雅虎财经上几只股票的损益表。许多股票可以包含在列表中或作为 CSV 文件导入。然后循环遍历代码以检索和组合它们。之后,转置和修改列名。对于下一个问题,请将代码作为文本而不是图像发布。这样做的好处是您会得到更快的答复。

import yfinance as yf
import numpy as np
import pandas as pd

symbol = ["AAPL","TSLA","AMZN","NKE","GOOG","KO"]
tickers = yf.Tickers(" ".join(symbol))
all_assets = pd.DataFrame(columns=['symbol','Total Assets'])

for i,ticker in enumerate(tickers.tickers):
    try:
        assets= tickers.tickers[i].balance_sheet.T["Total Assets"].to_frame()
        assets['symbol'] = symbol[i]
        all_assets = pd.concat([all_assets,assets],axis=0)
    except:
        pass

all_assets.head(10)

symbol  Total Assets
2020-09-26  AAPL    3.238880e+11
2019-09-28  AAPL    3.385160e+11
2018-09-29  AAPL    3.657250e+11
2017-09-30  AAPL    3.753190e+11
2020-12-31  TSLA    5.214800e+10
2019-12-31  TSLA    3.430900e+10
2018-12-31  TSLA    2.974000e+10
2017-12-31  TSLA    2.865537e+10
2020-12-31  AMZN    3.211950e+11
2019-12-31  AMZN    2.252480e+11

all_assets.pivot(columns='symbol').head(5)
    Total Assets
symbol      AAPL    AMZN    GOOG    KO      NKE             TSLA
2017-05-31  NaN     NaN     NaN     NaN     2.325900e+10    NaN
2017-09-30  3.753190e+11    NaN     NaN     NaN     NaN     NaN
2017-12-31  NaN     1.313100e+11    1.972950e+11    8.789600e+10    NaN     2.865537e+10
2018-05-31  NaN     NaN     NaN     NaN     2.253600e+10    NaN
2018-09-29  3.657250e+11    NaN     NaN     NaN     NaN     NaN

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...