You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.5 KiB

Exercise 3 Multi asset returns

The goal of this exercise is to learn to compute daily returns on a DataFrame that contains many assets (multi-assets).

business_dates = pd.bdate_range('2021-01-01', '2021-12-31')

#generate tickers
tickers = ['AAPL', 'FB', 'GE', 'AMZN', 'DAI']

#create indexs
index = pd.MultiIndex.from_product([business_dates, tickers], names=['Date', 'Ticker'])

# create DFs
market_data = pd.DataFrame(index=index,
                        data=np.random.randn(len(index), 1),
                        columns=['Price'])
  1. Without using a for loop, compute the daily returns (return(d) = (price(d)-price(d-1))/price(d-1)) for all the companies and returns a DataFrame as:
Date ('Price', 'AAPL') ('Price', 'AMZN') ('Price', 'DAI') ('Price', 'FB') ('Price', 'GE')
2021-01-01 00:00:00 nan nan nan nan nan
2021-01-04 00:00:00 1.01793 0.0512955 3.84709 -0.503488 0.33529
2021-01-05 00:00:00 -0.222884 -1.64623 -0.71817 -5.5036 -4.15882

Note: The data is generated randomly, the values you may have a different results. But, this shows the expected DataFrame structure.

Hint use groupby