Ho un dataframe con una colonna denominata 'altezza' e voglio convertire i valori in float. L'unità di misura predefinita è in metri, ma ha alcuni valori in formato non corretto, o in pollici. Sembra
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
Fondamentalmente, ho bisogno di convertire i valori in pollici/piedi alla metro, unità di conversione di valori come Bilinmiyor
e Unknown
per NaN
, rimuovere l'unità specifiche come m
m
, sostituire la virgola nei numeri decimali con .
e mantenere il numero più grande del valore 9;6;3
. Il finale dtypes dovrebbe essere o float int.
Sono nuovo di python, quindi non so davvero come utilizzare tecniche avanzate finora. Stavo cercando di realizzare il compito che utilizza
def to_num(a):
try:
return float(pd.to_numeric(a, errors = 'raise'))
except ValueError:
return a
df['height'] = to_num(df['height'])
ma non ha funzionato. Mi chiedevo se devo utilizzare l'iterazione ma mi sembra molto complicato per scorrere tutte le celle di questa colonna, poiché il dataset ha più di 2 milioni di righe.