J'ai un dataframe avec une colonne nommée "hauteur" et je veux convertir les valeurs en float. L'unité par défaut est dans le compteur, mais il a certaines valeurs dans un format incorrect, ou en pouces. Il ressemble
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
En gros, j'ai besoin de convertir les valeurs en pouces/ft au compteur, convertir des valeurs comme Bilinmiyor
et Unknown
pour NaN
, retirez les spécifications de l'unité comme m
m
, remplacer la virgule dans les nombres décimaux avec .
et de garder le plus grand nombre de valeur 9;6;3
. La finale dtypes doit être de type float ou int.
Je suis nouveau sur python donc je ne sais pas vraiment comment utiliser les techniques avancées jusqu'à présent. Je cherche à réaliser la tâche en utilisant
def to_num(a):
try:
return float(pd.to_numeric(a, errors = 'raise'))
except ValueError:
return a
df['height'] = to_num(df['height'])
mais il ne fonctionne pas. Je me demandais si je devrais utiliser itération, mais il semble très compliqué pour itérer sur toutes les cellules de cette colonne, parce que le jeu de données a plus de 2 millions de lignes.