目標(biāo):將買入/賣出/中性/錯(cuò)誤指標(biāo)輸出到單個(gè) df[column],同時(shí)過濾掉“假”值。指標(biāo)基于以下數(shù)據(jù)框列,然后用布爾語句制定:df['sma_10'] = pd.DataFrame(ta.SMA(df['close'], timeperiod=10), dtype=np.float, columns=['close']) df['buy'] = pd.DataFrame(df['close'] > df['sma_10'], columns=['buy']) df['buy'] = df['buy'].replace({True: 'BUY'}) df['sell'] = pd.DataFrame(df['close'] < df['sma_10'], columns=['sell']) df['sell'] = df['sell'].replace({True: 'SELL'}) df['neutral'] = pd.DataFrame(df['close'] == df['sma_10'], columns=['neutral']) df['neutral'] = df['neutral'].replace({True: 'NEUTRAL'}) df['error'] = pd.DataFrame((df['buy'] == False) & (df['sell'] == False) & (df['neutral'] == False), columns=['Error']) df['error'] = df['error'].replace({True: 'ERROR'})df的當(dāng)前輸出buy sell Neutral ErrorFalse False False ERRORBUY False False FalseFalse SELL False FalseFalse False NEUTRAL Falsedf 的期望輸出IndicatorERRORBUYSELLNEUTRAL嘗試和方法:第一種方法:合并所有買入/賣出/中性/錯(cuò)誤列并嘗試刪除“假”值。Dataframe 在出錯(cuò)之前只迭代一次。df['sma_10_indic']=[df['buy'].astype(str)+df['sell'].astype(str)+df['neutral'].astype(str)+df['error'].astype(str)].drop("False")我嘗試了 if & elif 的子程序,例如:此方法也在第一個(gè)索引之前出錯(cuò)df['buy'] = pd.DataFrame(df['close'] > df['sma_10'])df['sell'] = pd.DataFrame(df['close'] < df['sma_10'])df['neutral'] = pd.DataFrame(df['close'] == df['sma_10'])error = ((buy == False) and (sell == False) and (neutral == False))if (df['buy'] == "True"): df['sma_10_indic'] = pd.DataFrame("BUY",columns=['indicator'])elif (df['sell'] == "True"): df['sma_10_indic'] = pd.DataFrame("SELL",columns=['indicator'])elif (df['neutral'] == "True"): df['sma_10_indic'] = pd.DataFrame("NEUTRAL",columns=['indicator'])elif (error == True): df['sma_10_indic'] = pd.DataFrame("ERROR",columns=['indicator'])我不確定前方的道路,我已經(jīng)在這條路上撞墻了大約 14 個(gè)小時(shí),沒有明確的道路。我還嘗試創(chuàng)建另一個(gè)單獨(dú)的數(shù)據(jù)框并通過 concat 合并它們,但由于布爾值而沒有運(yùn)氣。我對 python 和 pandas/dataframes 比較陌生,所以請耐心等待。先感謝您!
添加回答
舉報(bào)
0/150
提交
取消