如何将以下代码的输出转换为数据框?
fund = Ticker('hasgx')
fund.fund_holding_info
Run Code Online (Sandbox Code Playgroud)
我从下面开始,
tickers = ['HACAX']
fund = Ticker(tickers)
fund = fund.fund_holding_info
fund = pd.DataFrame(fund).reset_index().rename(columns={'index': 'Header'})
fund = fund[fund["Header"] == "holdings"]
Run Code Online (Sandbox Code Playgroud)
输出为,
所有这些如何转换为包含“控股”行和列的数据框?
我正在尝试下载股票代码列表的历史数据并将每个数据导出到 csv 文件。我可以把它作为一个 for 循环来工作,但是当股票行情列表在 1000 的时候这很慢。我正在尝试对进程进行多线程处理,但我不断收到许多不同的错误。有时它只会下载 1 个文件,有时会下载 2 或 3 次,甚至会下载 6 次,但绝不会超过这个数。我猜这与拥有 6 核 12 线程处理器有关,但我真的不知道。
import csv
import os
import yfinance as yf
import pandas as pd
from threading import Thread
ticker_list = []
with open('tickers.csv', 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
name = None
for row in reader:
if row[0]:
ticker_list.append(row[0])
start_date = '2019-03-03'
end_date = '2020-03-04'
data = pd.DataFrame()
def y_hist(i):
ticker = ticker_list[i]
data = yf.download(ticker, start=start_date, end=end_date, group_by="ticker")
data.to_csv('yhist/' + ticker …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 yfinance 包通过 Yahoo Finance API 以 1 小时为间隔提取股票价格历史记录。我运行以下代码。
import yfinance as yf
msft = yf.Ticker("MSFT")
df = msft.history(period = "5d", interval = "1h")
df.reset_index(inplace = True)
print(df["Date"][0])
print(df["Date"][1])
print(df["Date"][2])
Run Code Online (Sandbox Code Playgroud)
我得到输出
2020-04-03 00:00:00
2020-04-03 00:00:00
2020-04-03 00:00:00
Run Code Online (Sandbox Code Playgroud)
为什么时间戳都是 00:00:00?股票价格实际上以 1 小时为间隔,看起来是正确的。7 行后日期也会正确更改。只是时间戳都是 0。我可以只对时间戳进行后处理,因为我知道间隔。只是好奇我是否在这里做错了什么。这是包应该如何工作吗?
每次我尝试使用 yFinance 获取股票价格时,它都会打印以下评论:
[*********************100%***********************] 1 of 1 completed
Run Code Online (Sandbox Code Playgroud)
有办法摆脱它吗?
data = yf.download(ticker, startDate.strftime("%Y-%m-%d"), endDate.strftime("%Y-%m-%d"))
Run Code Online (Sandbox Code Playgroud) yfinance 和 yahoo_fin 似乎不再完全有效。
是否还有其他人遇到此问题,但没有使用这些软件包的任何公司的财务数据?
有谁知道这些是否已被弃用或阻止,或者 yfinance 和 yahoo_fin 是否仍在工作?
编辑: .history 似乎有效,一些公司的 .info 也有效,但不是全部。
我使用 python yfinance yahoo API 进行股票数据检索。现在我得到的是挂钩比率,这是公司价格与其增长和收益相关的指标。我从这里下载了一个 csv: https: //www.nasdaq.com/market-activity/stocks/screener。它正好有 8000 只股票。
我所做的是获取符号列表,并迭代它以访问雅虎股票。然后我使用ticker.info 方法返回一个字典。我通过 8000 个符号重复这个过程。它以每分钟 6 个符号的速度运行,这是不可行的。是否有使用其他 API 或其他结构的更快方法?我不关心 API,只要我能获得增长、收益、每股收益等基本信息即可。
这是代码:
import pandas as pd
import yfinance as yf
data = pd.read_csv("data/stock_list.csv")
symbols = data['Symbol']
for symbol in symbols:
stock = yf.Ticker(symbol)
try:
if stock.info['pegRatio']:
print(stock.info['shortName'] + " : " + str(stock.info['pegRatio']))
except KeyError:
pass
Run Code Online (Sandbox Code Playgroud) 我正在尝试从 Devon 的 yFinance API 获取收盘价DVN
。问题是 API 给出的adjusted closing share price
响应closing share price
数据有时可能不同。
雅虎财经显示,天地网络2021年9月9日收盘股价为28.45,调整后收盘股价为27.96
在 yFinance 的 API 响应中,我得到的收盘股价为 27.96,这应该是调整后的值,而不是收盘值。
现在我如何从 yFinance 获取收盘价而不是调整后的股价?
我尝试使用命令将 yfinance 安装到 anaconda 中: conda install -c anaconda yfinance
错误消息显示:警告:conda.compat 模块已弃用,并将在未来版本中删除。收集包元数据:完成解决环境:失败
PackagesNotFoundError:当前渠道无法提供以下软件包:
目前渠道:
要搜索可能提供您正在寻找的 conda 包的替代频道,请导航至
https://anaconda.org
Run Code Online (Sandbox Code Playgroud)
并使用页面顶部的搜索栏。
我还使用过: conda config --appendchannels conda-forge
没有什么变化
conda install -c anaconda yfinance conda config --append 通道 conda-forge
我正在使用yfinance
和plotly
库(python 2.7)来获取欧元/美元数据,然后创建烛台图。
这是我从雅虎财经下载数据的代码:
import yfinance as yf
data = yf.download(tickers='EURUSD=X', period='1d', interval='30m')
Run Code Online (Sandbox Code Playgroud)
示例输出:
data.tail(10)
Open High Low Close Adj Close Volume
Datetime
2022-02-25 17:30:00+00:00 1.125239 1.125239 1.124101 1.124354 1.124354 0
2022-02-25 18:00:00+00:00 1.124480 1.125873 1.124480 1.125492 1.125492 0
2022-02-25 18:30:00+00:00 1.125619 1.126507 1.125619 1.126126 1.126126 0
2022-02-25 19:00:00+00:00 1.125999 1.126507 1.125492 1.126253 1.126253 0
2022-02-25 19:30:00+00:00 1.126634 1.126888 1.125366 1.126634 1.126634 0
2022-02-25 20:00:00+00:00 1.126888 1.127015 1.126126 1.126634 1.126634 0
2022-02-25 20:30:00+00:00 …
Run Code Online (Sandbox Code Playgroud) 我正在尝试获取 S&P500 中所有股票的当前价格和市值,而我目前的做法非常慢,所以我想知道是否有什么可以改进它的方法,或者任何其他方法。这是我当前的方法,只是打印名称、市值和当前价格:
import yfinance as yf
#I am using a csv file with a list of all the tickers which I use to create a pandas dataframe and form a space seperated string of all of the tickers called all_symbols
#I have simplified the pandas dataframe to a list for the purpose of this question
ticker_list = ["A", "AL", "AAP", "AAPL", ... "ZBRA", "ZION", "ZTS"]
all_symbols = " ".join(ticker_list)
tickers = yf.Tickers(all_symbols)
for ticker in ticker_list:
price = tickers.tickers[ticker].info["currentPrice"] …
Run Code Online (Sandbox Code Playgroud)