Tengo un dataframe con una columna llamada 'altura', y yo quiero convertir los valores en el flotador. La unidad predeterminada es en metro, pero tiene algunos valores en un formato incorrecto, o en pulgadas. Parece
height
0 16
1 7
2 7
3 6 m
4 2.40
5 5'8"
6 3m
7 6,9
8 9;6;3
9 Unknown
10 4.66
11 Bilinmiyor
12 11' 4"
dtype: object
Básicamente, necesito convertir los valores en pulgadas/pies a metros de la unidad, convertir los valores como Bilinmiyor
y Unknown
a NaN
, quitar la especificación de la unidad como m
m
, reemplazar la coma en los decimales de los números con .
y mantener el mayor número de valor 9;6;3
. El final dtypes debe ser flotante o de int.
Soy nuevo en python, así que no sabemos realmente cómo utilizar técnicas avanzadas hasta la fecha. Yo estaba tratando de lograr la tarea mediante
def to_num(a):
try:
return float(pd.to_numeric(a, errors = 'raise'))
except ValueError:
return a
df['height'] = to_num(df['height'])
pero no funcionó. Me preguntaba si debería utilizar la iteración, pero parece muy complicado para recorrer todas las celdas de esta columna, ya que el conjunto de datos tiene más de 2 millones de filas.