Часто вас может заинтересовать преобразование одного или нескольких строковых столбцов в 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