df3.columns = columns
df4 = pd.DataFrame({'a': np.zeros(2, dtype='int32'), 'b': np.zeros(2, dtype
    ='float32'), 'c': np.zeros(2, dtype='float32')}, index=index, columns=
    columns)
df5 = pd.concat([pd.DataFrame(np.zeros((2,), dtype='int32'), columns=['a']),
    pd.DataFrame(np.zeros((2, 2), dtype='float32'), columns=['b', 'c'])],
    axis=1)
values2 = np.zeros((2, 3))
df6 = pd.DataFrame(values2, index=index, columns=columns)
for col, dtype in zip(df6.columns, 'int32 float32 float32'.split()):
    df6[col] = df6[col].astype(dtype)
Creating a Pandas DataFrame with a numpy array containing multiple types