我正在尝试使用Python从雅虎财经上的Sustainalytics抓取历史ESG数据。具体来说,假设我想要一个给定的成分列表的过去10年的ESG得分。
以下代码行提供了最新的ESG分数。但我想刮过去的ESG表现。我基本上在寻找从2010年1月到2020年12月的年度(每月,如果可能的话)ESG。我想自动抓取并保存在一个txt或csv文件的数据。
# import yfinance, pandas and os
import yfinance as yf
import pandas as pd
import os
单个股票代码:
msft = "MSFT"
msft_y = yf.Ticker(msft)
esg_data = pd.DataFrame.transpose(msft_y.sustainability)
esg_data['company_ticker'] = str(msft_y ticker)
它返回一个27行的dataframe,其中包含Microsoft的ESG相关信息。
标准普尔500指数代码:
# Import list of tickers from file
os.chdir("C:\...")
sp_500 = pd.read_csv('SP_500_tickers.csv')
# Retrieve Yahoo! Finance Sustainability Scores for each ticker
for i in sp_500['ticker_code']:
# print(i)
i_y = yf.Ticker(i)
try:
if i_y.sustainability is not None:
temp = pd.DataFrame.transpose(i_y.sustainability)
temp['company_ticker'] = str(i_y.ticker)
# print(temp)
esg_data = esg_data.append(temp)
except IndexError:
pass
它返回一个关于标准普尔500指数成分股ESG数据的数据框架,我们可以使用它进行分析。其背后的想法是创建“好”和“坏”ESG公司的投资组合,并比较业绩,以了解股价在不同历史时期的表现。
到目前为止,这些代码无法获取过去日期的ESG数据。
3条答案
按热度按时间hkmswyz61#
我无法使用requests.get,因为连接被禁止。错误403。所以我试着从下面的StackOverflow板使用urllib.request.urlopen。访问Python; urllib error: AttributeError: 'bytes' object has no attribute 'read'
预览打印putty显示的数据
其余代码改编自putty
2vuwiymt2#
您可以使用Yahoo Finance端点,它应该会为您提供每月的ESG分数,治理分数,环境分数和社会分数。但不要以为它可以追溯到那么远:
预览:
w41d8nur3#
1转到雅虎财经。2在搜索字段中输入报价。3在搜索结果中选择报价以查看报价。4单击历史数据。5选择时间段、要显示的数据和频率。6单击应用。7要脱机使用数据,请执行click Download。