Когда я выполняю код ниже, он выполняет условие «else», даже если выполнено условие «if». НапримерPandas: блок «if» не выполняется.
Date 05/01/2006
Open 5521.86
Low 5502.25
Close.shift(1) 5523.620117
Он удовлетворяет "если" состояние блока (то есть)
DAX_Logic < 1 *(value is 0.99968132240039786)*
Однако "если" блок никогда не будет выполнена. Пожалуйста помогите
DAX=pd.io.data.DataReader("^GDAXI","yahoo",start,end)
DAX_Logic= DAX['Open'].fillna(1)/DAX['Close'].shift(1).fillna(1)
DAX_Logic_1= DAX['Low'].fillna(1)/DAX['Open'].fillna(1)
if DAX_Logic.any() < 1:
Daily_Return = 100*(DAX['Low']-DAX['Open'])
else:
Daily_Return = (-100)*(DAX['Close']-DAX['Open'])
Я попытался использовать следующий фрагмент кода и ниже фрагмент выполняется только «Если» блок и никогда не «еще» блок ... немного смущен, что я делаю не так в выше и ниже кода. (Они производят совершенно противоположные результаты)
DAX=pd.io.data.DataReader("^GDAXI","yahoo",start,end)
DAX_Logic= DAX['Open'].fillna(1)/DAX['Close'].shift(1).fillna(1)
DAX_Logic_1= DAX['Low'].fillna(1)/DAX['Open'].fillna(1)
for i in DAX_Logic.index[:]:
if (DAX_Logic[i] < 1):
Daily_Return = 100*(DAX['Low']-DAX['Open'])
else:
Daily_Return = (-100)*(DAX['Close']-DAX['Open'])
Вы говорите, что 'DAX_Logic <1 * (значение +0,99968132240039786) * ', но оператор if читает' if DAX_Logic.any() <1: ', возможно, DAX_Logic.any() возвращает другое значение, чем DAX_Logic. – Alex
Эти булевские выражения работают только внутри 'DAX [DAX ['Low'] <1]' или с .ix или подобным, но не нормальным, если. – YOU