allign data in DataFrame
#allign data to dataframe
df1 = pd.DataFrame(0.0, index=all_date, columns=[a.sidb for a in d])
start = time.time()
for q in d:
df1.iloc[np.in1d(all_date, q.date, assume_unique=True),
df1.columns.get_loc(q.sidb)] = q.pnl
print ("Result: %.2f secs" % (time.time() - start))
allign data in numpy array (3x faster)
# allign using numpy
start = time.time()
a1 = np.zeros((len(d), len(all_date)))
i = 0
for q in d:
idx = np.in1d(all_date, q.date, assume_unique=True)
a1[i, idx] = q.pnl
i = i + 1
print ("Result: %.2f secs" % (time.time() - start))
you can join/merge objects if they have same type axis
for example align two time series by date
{{:data:pandas:pasted:20180324-131514.png}}
{{:data:pandas:pasted:20180324-132455.png}}