Pandas inválido literal para long () con error de base 10

Estoy tratando de hacer: df['Num_Detections'] = df['Num_Detections'].astype(int)

Y me sale el siguiente error:

ValueError: literal inválido para long () con base 10: ’12 .0 ‘

Mis datos se ve a continuación:

 >>> df['Num_Detections'].head() Out[6]: sku_name DOBRIY MORS GRAPE-CRANBERRY-RASBERRY 1L 12.0 AQUAMINERALE 5.0L 9.0 DOBRIY PINEAPPLE 1.5L 2.0 FRUKT.SAD APPLE 0.95L 154.0 DOBRIY PEACH-APPLE 0.33L 71.0 Name: Num_Detections, dtype: object 

¿Alguna idea de cómo hacer la conversión correctamente?

Gracias por la ayuda.

Hay algún valor, que no se puede convertir a int .

Puede usar to_numeric y obtener NaN donde el valor es problemático:

 df['Num_Detections'] = pd.to_numeric(df['Num_Detections'], errors='coerce') 

Si es necesario verificar filas con valores problemáticos, use la boolean indexing con máscara con isnull :

 print (df[ pd.to_numeric(df['Num_Detections'], errors='coerce').isnull()]) 

Muestra:

 df = pd.DataFrame({'Num_Detections':[1,2,'a1']}) print (df) Num_Detections 0 1 1 2 2 a1 print (df[ pd.to_numeric(df['Num_Detections'], errors='coerce').isnull()]) Num_Detections 2 a1 df['Num_Detections'] = pd.to_numeric(df['Num_Detections'], errors='coerce') print (df) Num_Detections 0 1.0 1 2.0 2 NaN