En este articulo veremos dos aproximaciones para convertir valores en un dataframe desde string hacia integer
Supongamos que tenemos los siguientes datos en nuestro dataframe:
Como podemos ver, los valores son numericos, pero estan ingresados como string,
Lo anterior lo podemos convertir a integer de la siguiente forma:
df['delay']=df['delay'].astype(int)
Como podemos ver, ahora la columna delay esta expresada en integer.
Ahora bien, que pasa cuando en los datos hay textos o entradas con valores que no se pueden convertir a integer, la forma anterior nos dará un error:
df['delay']=df['delay'].astype(int)
ValueError: invalid literal for int() with base 10: 'No info'
Para este caso podemos convertir usando la funcion to_numeric de la siguiente forma:
df['delay'] = pd.to_numeric(df['delay'],errors='coerce')
Obteniendo lo siguiente:
Como ven, los valores con texto se han reemplazado con el valor NaN. Podemos finalmente, y si es deseado convertir estos valores NaN a 0 u otro valor con la funcion replace de Numpy de la siguiente forma:
import numpy as np
df.replace(np.nan,0,regex=True)
Si quieren profundizar mas acerca de esta funcion pueden revisar la documentacion oficial aquí