Вспомогательная функция:
Код: Выделить всё
def signalbin(x,y):
if x > y:
return 1
else:
return -1
Код: Выделить всё
np.random.seed(0)
df = pd.DataFrame(
{
'a': np.random.normal(0, 2.5, n),
'b': np.random.normal(0, 2.5, n),
}
)
Код: Выделить всё
df["signal"] = [signalbin(x, y) for x, y in zip(df["a"], df["b"])]
df["signal2"] = df["signal"]
for i, row in df.iterrows():
if i == 0:
continue
if (row['signal2'] != df.at[i-1, "signal"]):
df.at[i, "signal2"] = df.at[i-1, "signal2"]
Поэтому я ищу более эффективную логику итерации, которая позволяет задавать условия для нескольких столбцы и строки
Подробнее здесь: https://stackoverflow.com/questions/787 ... ion-method