У меня есть фрейм данных со столбцом с именем "высота", и я хочу преобразовать значения в значение с плавающей точкой. Единица измерения по умолчанию указана в метрах, но некоторые значения указаны в неправильном формате или в дюймах. Это выглядит так
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
В принципе, мне нужно преобразовать значения в дюймах/футах в единицу измерения, преобразовать такие значения, как Bilinmiyor
и Unknown
Для NaN
, удалите спецификацию устройства, например m
m
, замените запятую в десятичных числах на .
, и сохранить наибольшее число для значения 9;6;3
. Конечными типами dtypes должны быть float или int.
Я новичок в python, поэтому пока не знаю, как использовать передовые методы. Я пытался выполнить задачу, используя
def to_num(a):
try:
return float(pd.to_numeric(a, errors = 'raise'))
except ValueError:
return a
df['height'] = to_num(df['height'])
но это не сработало. Мне было интересно, следует ли использовать итерацию, но кажется очень сложным выполнить итерацию по всем ячейкам в этом столбце, потому что набор данных содержит более 2 миллионов строк.