Cómo establecer dtypes por columna en pandas DataFrame

Quiero traer algunos datos a un DataFrame de pandas y quiero asignar dtypes para cada columna en la importación. Quiero poder hacer esto para conjuntos de datos más grandes con muchas columnas diferentes, pero, como ejemplo:

myarray = np.random.randint(0,5,size=(2,2))
mydf = pd.DataFrame(myarray,columns=['a','b'], dtype=[float,int])
mydf.dtypes

resultados en:

TypeError: tipo de datos no entendido

Intenté algunos otros métodos como:

mydf = pd.DataFrame(myarray,columns=['a','b'], dtype={'a': int})

TypeError: el objeto de tipo 'type' no tiene len ()

Si pongodtype=(float,int) aplica un formato flotante a ambas columnas.

Al final, me gustaría poder pasarle una lista de tipos de datos de la misma manera que puedo pasarle una lista de nombres de columna.

Respuestas a la pregunta(3)

Su respuesta a la pregunta