У меня есть датафрейм pandas со значениями вроде
Date Col1 col2
20000101 0.5 0
20000102 0.5 0.5
20000103 0 0.25
20000104 0.5 0.5
требуемый выход
Date Col1 col2 col1_1 col2_2
20000101 0.5 0 Buy NA
20000102 0.5 0.5 Hold Buy
20000103 0 0.25 Sell Sell
20000104 0.5 0.5 Buy Buy
Используя логику, если текущий вес больше, чем предыдущий, затем введите «Buy», в случае отсутствия изменений, затем «Hold» или, если ниже, чем предыдущий, затем вставьте «Sell»
Я использовал логику
for i in range(1, len(df)):
if i == 1:
df.loc[0, 'col1'] = 0
c = df.loc[i, 'col1']
p = df.loc[i-1, 'col1']
if c == p:
df.loc[i, 'col1_1'] = 'Hold'
elif c > p:
df.loc[i, 'col1_1'] = 'Buy'
elif c < p:
df.loc[i, 'col1_1'] = 'Sell'
else:
df.loc[i, 'col1'] = 'NA'
Используя это, я не получаю желаемый результат.