python pandas get first available datapoint of a year / calculate YTD return -


i need calculate year-to-date relative return of given dataset. caculate cumulative relative return simple function:

def relperf(price):     relperf = (price/price[0])     return relperf   

the problem ist need set instead of "price[0]" price start of each year (first available datapoint of year). since dataset not contain data each day of year can't use sth +365. question how dynamically location of first available datapoint formula?

this short example of dataframe used:

              close_spx    close_iboxx  a_returns  b_returns  a_vola    b_vola 2014-05-15    1870.85      234.3017    -0.009362   0.003412   0.170535  0.075468    2014-05-16    1877.86      234.0216     0.003747  -0.001195   0.170153  0.075378 2014-05-19    1885.08      233.7717     0.003845  -0.001068   0.170059  0.075384    2014-05-20    1872.83      234.2596    -0.006498   0.002087   0.170135  0.075410    2014-05-21    1888.03      233.9101     0.008116  -0.001492   0.169560  0.075326    2014-05-22    1892.49      233.5429     0.002362  -0.001570   0.169370  0.075341    2014-05-23    1900.53      233.8605     0.004248   0.001360   0.168716  0.075333    2014-05-27    1911.91      234.0368     0.005988   0.000754   0.168797  0.075294    2014-05-28    1909.78      235.4454    -0.001114   0.006019   0.168805  0.075474    2014-05-29    1920.03      235.1813     0.005367  -0.001122   0.168866  0.075451    2014-05-30    1923.57      235.2161     0.001844   0.000148   0.168844  0.075430    2014-06-02    1924.97      233.8868     0.000728  -0.005651   0.168528  0.075641    2014-06-03    1924.24      232.9049    -0.000379  -0.004198   0.167852  0.075267 

use df dataframe

group data timegrouper things grouped year groupeddat = df.groupby(pd.timegrouper('a'))

create new column ytd data of adjusted close, using transformation lambda function applied our group data.

df["ytd"] = groupeddat['close_spx'].transform(lambda x: x/x.iloc[0]-1.0)

solution provided markd: https://quant.stackexchange.com/questions/18085/calculate-ytd-return-find-first-available-datapoint-of-a-year-in-python


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -