Python Forum

Full Version: column math
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I have 3 columns in question... ['Last'] is data... ['Goal'] is Last shifted forward 5 rows
I am trying to assign a value to ['direction'] based on ['Goal'} >< 5

I'm probably over-complicating things, any help?

# I begin with creating a zero column as I was getting length errors
data['direction'] = 0
data['Goal'] = data['Last'].shift(5)
data = data.dropna()  #Drop rows with NAN after shift

for row in data.Last:
    if (data.values['Goal'] - data.values['Last'] >= 5):
        data['direction'] = 1, 
    elif (data.values['Goal'] - data.values['Last'] <= -5):
        data['direction'] = -1, 
    else:
        data['direction']=0
Error:
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
You don't really need to initialize direction column.

data.loc[data.Goal.shift(5) - data.Last >= 5, 'direction'] = 1
data.loc[data.Goal.shift(5) - data.Last <= -5, 'direction'] = -1
data.direction.fillna(0, inplace=True) # optionally, instead of initialization