Как преобразовать строки в числа с плавающей запятой в 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()