Ampliando el uso mencionado del pandas.DataFrame.astype(<type>)
método @Ryan G , se puede usar el errors=ignore
argumento para convertir solo aquellas columnas que no producen un error, lo que simplifica notablemente la sintaxis. Obviamente, se debe tener precaución al ignorar los errores, pero para esta tarea resulta muy útil.
>>> df = pd.DataFrame(np.random.rand(3, 4), columns=list('ABCD'))
>>> df *= 10
>>> print(df)
... A B C D
... 0 2.16861 8.34139 1.83434 6.91706
... 1 5.85938 9.71712 5.53371 4.26542
... 2 0.50112 4.06725 1.99795 4.75698
>>> df['E'] = list('XYZ')
>>> df.astype(int, errors='ignore')
>>> print(df)
... A B C D E
... 0 2 8 1 6 X
... 1 5 9 5 4 Y
... 2 0 4 1 4 Z
De pandas.DataFrame.astype docs:
errores: {'raise', 'ignore'}, predeterminado 'raise'
Controle el aumento de excepciones en datos no válidos para el tipo proporcionado.
- raise: permitir que se generen excepciones
- ignorar: suprimir excepciones. En caso de error, devuelva el objeto original
Nuevo en la versión 0.20.0.
df.col = df.col.astype(int)