Mam ramkę danych z kolumną o nazwie "wysokość" i chcę przekształcić wartość w wartość zmiennoprzecinkowa. Jednostka domyślna określona w metrach, ale niektóre wartości podane są w złym formacie lub w calach. To wygląda tak
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
W zasadzie, muszę konwertować wartości w calach/stopach w jednostkę miary, przekształcać takie wartości, jak Bilinmiyor
i Unknown
Dla NaN
usuń specyfikację urządzenia, np. m
m
wymień przecinka w liczbach dziesiętnych na .
i zapisz największą liczbę wartości 9;6;3
. Końcowymi typ dtypes powinny być float lub int.
Jestem początkujący w pythonie, więc na razie nie wiem, jak korzystać z zaawansowanych technik. Starałem się wykonać zadanie za pomocą
def to_num(a):
try:
return float(pd.to_numeric(a, errors = 'raise'))
except ValueError:
return a
df['height'] = to_num(df['height'])
ale to nie zadziałało. Zastanawiałem się, czy należy użyć iteracji, ale wydaje się bardzo trudne wykonać iteracji dla wszystkich komórek w tej kolumnie, bo zestaw danych zawiera ponad 2 milionów wierszy.