We have had some questions regarding the structure of the pandas.DataFrame that we get from a History call:
df = self.History(["SPY","TQQQ"], 1000)
df is a multi-index pandas.DataFrame where the symbols ("SPY" and "TQQQ") are index 0 and date/time is index 1:
self.Log(str(hist.index))
self.Log(str(hist.columns))
For some applications, it is more convenient to have the symbols in the columns:
# Select the closing prices
prices = hist.close
# Get data frame for each symbol
spy = prices.loc['SPY']
tqqq = prices.loc['TQQQ']
# Concat the data frames and define the columns
prices = pd.concat([spy,tqqq],axis = 1)
prices.columns = self.stocks
Please checkout a working example below where we can find the application that needs a different data frame structure.
Thanks to Yan Xiaowei for the proposed solution.
We welcome alternative solutions.