KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
So, I am very new to Python and Pandas (and programming in general), but am having trouble with a seemingly simple function. So I created the following dataframe using data pulled with a SQL query (if you need to see the SQL query, let me know and I'll paste it) spydata = pd.DataFrame(row,columns=['date','ticker','close', 'iv1m', 'iv3m']) tickerlist = unique(spydata[spydata['date'] == '2013-05-31']) After that, I have written a function to create some new columns in the dataframe using the data already held in it: def demean(arr): arr['retlog'] = log(arr['close']/arr['close'].shift(1)) arr['10dvol'] = sqrt(252)*sqrt(pd.rolling_std(arr['ret'] , 10 )) arr['60dvol'] = sqrt(252)*sqrt(pd.rolling_std(arr['ret'] , 10 )) arr['90dvol'] = sqrt(252)*sqrt(pd.rolling_std(arr['ret'] , 10 )) arr['1060rat'] = arr['10dvol']/arr['60dvol'] arr['1090rat'] = arr['10dvol']/arr['90dvol'] arr['60dis'] = (arr['1060rat'] - arr['1060rat'].mean())/arr['1060rat'].std() arr['90dis'] = (arr['1090rat'] - arr['1090rat'].mean())/arr['1090rat'].std() return arr The only part that I'm having a problem with is the first line of the function: arr['retlog'] = log(arr['close']/arr['close'].shift(1)) Which, when I run, with this command, I get an error: result = spydata.groupby(['ticker']).apply(demean) Error: --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-196-4a66225e12ea> in <module>() ----> 1 result = spydata.groupby(['ticker']).apply(demean) 2 results2 = result[result.date == result.date.max()] 3 C:\Python27\lib\site-packages\pandas-0.11.0-py2.7-win32.egg\pandas\core\groupby.pyc in apply(self, func, *args, **kwargs) 323 func = _intercept_function
Tags (comma-separated)
Save Edits
Cancel