K = list(d.keys())
V = list(d.values())
mask = ~np.in1d(K, 'Date')
K1 = [K[i] for i, item in enumerate(V) if mask[i]]
V1 = [V[i] for i, item in enumerate(V) if mask[i]]
lens = np.array([len(item) for item in V1])
mask = lens[:, (None)] > np.arange(lens.max())
out_arr = np.full(mask.shape, np.nan)
out_arr[mask] = np.concatenate(V1)
df = pd.DataFrame(out_arr.T, columns=K1, index=d['Date'])
Filling dict with NA values to allow conversion to pandas dataframe