Как преобразовать строки в числа с плавающей запятой в Pandas


Часто вас может заинтересовать преобразование одного или нескольких строковых столбцов в pandas DataFrame в столбцы с плавающей запятой. К счастью, это легко сделать с помощью функции astype() .

В этом руководстве показано несколько примеров использования этой функции на практике с использованием следующего кадра данных:

import numpy as np
import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [np.nan, 12, 15, 14, 19],
 'assists': ['5', np.nan, '7', '9', '12'],
 'rebounds': ['11', '8', '10', '6', '6']}) 

#view DataFrame
df

 points assists rebounds
0 NaN 5.0 11
1 12.0 NaN 8
2 15.0 7.0 10
3 14.0 9.0 6
4 19.0 12.0 6

#view column data types
df.dtypes

points float64
assists object
rebounds object
dtype: object

Пример 1: преобразование одного столбца в число с плавающей запятой

Следующий синтаксис показывает, как преобразовать столбец «assists» из строки в число с плавающей запятой:

#convert "assists" from string to float
df['assists'] = df['assists'].astype (float)

#view column data types
df.dtypes

points float64
assists float64
rebounds object
dtype: object

Пример 2. Преобразование нескольких столбцов в число с плавающей запятой

Следующий синтаксис показывает, как преобразовать столбцы «ассисты» и «отборы» из строк в числа с плавающей запятой:

#convert both "assists" and "rebounds" from strings to floats
df[['assists', 'rebounds']] = df[['assists', 'rebounds']].astype (float)

#view column data types
df.dtypes

points float64
assists float64
rebounds float64
dtype: object

Пример 3: преобразовать все столбцы в числа с плавающей запятой

Следующий синтаксис показывает, как преобразовать все столбцы в DataFrame в числа с плавающей запятой:

#convert all columns to float
df = df.astype (float)

#view column data types
df.dtypes

points float64
assists float64
rebounds float64
dtype: object

Пример 4. Преобразование строки в число с плавающей запятой и заполнение значений NaN

Следующий синтаксис показывает, как преобразовать столбец «assists» из строк в числа с плавающей запятой и одновременно заполнить значения NaN нулями:

#convert "assists" from string to float and fill in NaN values with zeros
df['assists'] = df['assists'].astype (float). fillna (0)

#view DataFrame
df

 points assists rebounds
0 NaN 5.0 11
1 12.0 0.0 8
2 15.0 7.0 10
3 14.0 9.0 6
4 19.0 12.0 6

Дополнительные ресурсы

Документация Pandas astype()
Документация Pandas fillna()

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.