tutorial guide dibujos animados pandas

guide - pandas python tutorial



error al usar astype cuando NaN existe en un marco de datos (1)

Si faltan algunos valores en la columna ( NaN ) y luego se convierten en numéricos, siempre dtype es float . No puede convertir valores a int . Sólo para float , porque el type de NaN es float .

print (type(np.nan)) <class ''float''>

Consulte la docs cómo convertir valores si al menos un NaN :

entero> cast to float64

Si necesita valores int, necesita reemplazar NaN por algún int , por ejemplo, 0 por fillna y luego funciona perfectamente:

df[''A''] = df[''A''].str.extract(''(/d+)'', expand=False) df[''B''] = df[''B''].str.extract(''(/d+)'', expand=False) print (df) A B 0 10 20 1 20 NaN 2 NaN 30 3 40 40 df1 = df.fillna(0).astype(int) print (df1) A B 0 10 20 1 20 0 2 0 30 3 40 40 print (df1.dtypes) A int32 B int32 dtype: object

df A B 0 a=10 b=20.10 1 a=20 NaN 2 NaN b=30.10 3 a=40 b=40.10

Lo intenté :

df[''A''] = df[''A''].str.extract(''(/d+)'').astype(int) df[''B''] = df[''B''].str.extract(''(/d+)'').astype(float)

Pero me sale el siguiente error:

ValueError: no se puede convertir NaN flotante en entero

Y:

AttributeError: solo puede usar el descriptor de acceso .str con valores de cadena, que usan np.object_ dtype en pandas

Cómo puedo solucionar esto ?