У меня есть столбец «Высота» в наборе данных, как показано ниже.

      Height
0       6-2
1       6-6
2       6-5
3       6-5
4      6-10
5       6-9
6       6-8
7       7-0

И его тип dtype: object. Теперь я хочу преобразовать его в float, т. е. 6.2, 6.6. Я пытался использовать метод замены , но это не сработало. Можете ли вы предложить мне, как это сделать? Я новичок в Пандах.

3
Subham 17 Апр 2019 в 16:54

2 ответа

Лучший ответ

Используйте Series.str.replace для замены подстрок и преобразования в числа с плавающей точкой:

df['Height'] = df['Height'].str.replace('-','.').astype(float)

Или используйте Series.replace с regex=True для замены подстрок:

df['Height'] = df['Height'].replace('-','.', regex=True).astype(float)
4
jezrael 17 Апр 2019 в 13:59

Вы можете отобразить столбец с помощью лямбда-функции, чтобы изменить его.

df.loc[:,'Height'] = df.loc[:,'Height'].map(lambda x: float(str(x).replace('-','.')))

Я не знаю ваш вариант использования, но если это дюймы, будьте осторожны.

1
krewsayder 17 Апр 2019 в 13:58