【发布时间】:2021-06-21 04:28:50
【问题描述】:
我试图让 ['RSIndex'] 的所有高点的滚动平均值大于 52,如果第一个 ref 值小于 52,系列将具有 NaN 值,但我想要之前的迭代值['high_r'] 如果任何其他 ref 值小于 52,则该函数已生成。如果有人对此有任何解决方案,我将不胜感激。谢谢
def AvgHigh(src, val) :
for a in range(len(src)) :
if src[a] > val :
yield src[a]
elif src[a] <= val and a == 0 :
yield np.nan
elif src[a] <= val and a != 0 :
yield src[a-1]
df1['high_r'] = pd.Series(AvgHigh(df1['RSIndex'], 52))
df1['RSI_high'] = df1['high_r'].rolling(window = 25, min_periods = 25).mean()
期望的输出:
【问题讨论】:
-
我试过这段代码,但第二条 elif 语句没有给我所需的内容,因为 ref 属于原始 RSIndex 系列,而不是函数生成的系列
标签: python pandas dataframe function shift