首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从pandas数据帧计算RSI

从pandas数据帧计算RSI
EN

Stack Overflow用户
提问于 2021-04-29 00:50:34
回答 1查看 140关注 0票数 0

我有一个pandas数据框,其中数据框的每一列都对应于给定股票的收盘价(IBOVESPA-BRASIL)。我想计算每个数据帧股票(df0)的RSI值,并用这个数据(df1)创建一个新的数据帧。我正在尝试使用pandas-ta库,但我被与收盘价对应的参数卡住了。我该如何解决这个问题呢?

代码语言:javascript
复制
#!pip install yfinance
#!pip install pandas-ta

#Used Packages
import pandas as pd
import pandas_ta as ta
from pandas_datareader import data as pdr
import yfinance as yf
yf.pdr_override()
from datetime import datetime
import warnings
warnings.filterwarnings("ignore")

#Analysis Start and End Date
inicio = '2020-04-01'
fim = '2021-04-27'

#STOCKS
lista = ['LCAM3.SA','MOVI3.SA','CARD3.SA','PRIO3.SA']

#GET DATA YFINANCE
data = pd.DataFrame()
stocks=lista
for stock in stocks:
  try:
    data[stock] = pdr.DataReader(stock, data_source="yahoo", start=inicio, end=fim)["Close"]
  except:
    continue
df0 = data

#GET RSI FROM DF0
df1 = df0.ta.rsi(close=df0, length=14, scalar=None, drift=None, offset=None)```
EN

回答 1

Stack Overflow用户

发布于 2021-05-22 09:14:08

不要相信你可以一次做所有的列。使用列表理解遍历lista并创建新的数据帧。T被转置以获得正确的方向。

代码语言:javascript
复制
df1 = pd.DataFrame([df0.ta.rsi(close=df0[sym], length=14, scalar=None, drift=None, offset=None) for sym in lista]).T
df1.columns = lista
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67304545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档