【问题标题】:Calculating RSI from a pandas dataframe从熊猫数据框中计算 RSI
【发布时间】:2021-07-22 01:33:07
【问题描述】:

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

#!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)```

【问题讨论】:

标签: python python-3.x pandas pandas-ta


【解决方案1】:

不要相信您可以一次完成所有列。使用列表推导来迭代 lista 并创建新的数据框。 T 被转置以获得正确的方向。

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

【讨论】:

    猜你喜欢
    • 2015-01-28
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 2016-05-20
    • 2017-04-11
    • 2013-06-23
    • 1970-01-01
    相关资源
    最近更新 更多