Am o dataframe cu o coloană numită "înălțime" și vreau să converti valorile în float. Implicit unitatea este în pătrat, dar are unele valori în format incorect, sau în inci. Se pare ca
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
Practic, am nevoie pentru a converti valorile în cm/ft la metru de unitate, pentru a converti valori ca Bilinmiyor
și Unknown
pentru a NaN
, scoateți unitatea specificarea ca m
m
, înlocuiți virgulă în numere zecimale cu .
, și să păstreze cel mai mare număr de valoare 9;6;3
. La final dtypes ar trebui să fie float sau int.
Sunt nou python deci nu prea știu cum să folosească tehnici avansate până în prezent. Am fost încercarea de a realiza sarcina cu ajutorul
def to_num(a):
try:
return float(pd.to_numeric(a, errors = 'raise'))
except ValueError:
return a
df['height'] = to_num(df['height'])
dar n-a mers. Mă întrebam dacă eu ar trebui să utilizeze iterație dar se pare foarte complicat pentru a itera prin toate celulele în această coloană, pentru că setul de date are mai mult de 2 milioane de rânduri.