Данные:
Date Stock Peak Trough Price
2002-01-01 33.78 False False 25
2002-01-02 34.19 False False 35
2002-01-03 35.44 False False 33
2002-01-04 36.75 False False 38
Я использую эту строку кода, чтобы установить для пика значение true в каждой строке всякий раз, когда цена акции выше или равна максимальному значению в строке, начиная со столбца 4:
df['Peak'] = np.where(df.iloc[:,4:].max(axis=1) >= df[stock], 'False', 'True')
Однако я пытаюсь сделать так, чтобы первые X и последние Y строки не были затронуты. Скажем, X и Y оба 10 в этом примере. Я изменил это так:
df.iloc[10:-10]['Peak'] = np.where(df.iloc[10:-10,4:].max(axis=1) >= df.iloc[10:-10][stock], 'False', 'True')
Это дает мне ошибку SettingWithCopyWarning, а также больше не работает. У кого-нибудь есть идеи, как получить желаемый результат, чтобы первые X и последние Y строки всегда были ложными?