Pandas: Como convertir strings en un dataframe to integer

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í

Leave a Reply

Your email address will not be published. Required fields are marked *