如何在 Pandas 中将对象转换为浮点数(附示例)
您可以使用以下方法之一将 pandas DataFrame 中的列从对象转换为浮点数:
Method 1: Use astype()
df['column_name'] = df['column_name'].astype(float)
Method 2: Use to_numeric()
df['column_name'] = pd.to_numeric(df['column_name'])
两种方法产生相同的结果。
以下示例展示了如何将每种方法与以下 pandas DataFrame 结合使用:
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], 'points': ['18', '22.2', '19.1', '14', '14', '11.5', '20', '28'], 'assists': [5, 7, 7, 9, 12, 9, 9, 4]}) #view DataFrame print(df) team points assists 0 A 18 5 1 B 22.2 7 2 C 19.1 7 3 D 14 9 4 E 14 12 5 F 11.5 9 6 G 20 9 7 H 28 4 #check data type of each column print(df.dtypes) team object points object assists int64 dtype: object
方法一:使用 astype() 将对象转为浮点数
以下代码显示了如何使用astype()函数将 DataFrame 中的点列从对象转换为浮点数:
#convert points column from object to float df['points'] = df['points'].astype(float) #view updated DataFrame print(df) team points assists 0 A 18.0 5 1 B 22.2 7 2 C 19.1 7 3 D 14.0 9 4 E 14.0 12 5 F 11.5 9 6 G 20.0 9 7 H 28.0 4 #view updated data types print(df.dtypes) team object points float64 assists int64 dtype: object
请注意,points 列现在的数据类型为float64。
方法二:使用to_numeric()将对象转为浮点数
以下代码显示了如何使用to_numeric()函数将 DataFrame 中的点列从对象转换为浮点数:
#convert points column from object to float df['points'] = pd.to_numeric(df['points'], errors='coerce') #view updated DataFrame print(df) team points assists 0 A 18.0 5 1 B 22.2 7 2 C 19.1 7 3 D 14.0 9 4 E 14.0 12 5 F 11.5 9 6 G 20.0 9 7 H 28.0 4 #view updated data types print(df.dtypes) team object points float64 assists int64 dtype: object
请注意,points 列现在的数据类型为float64。
另请注意,此方法产生的结果与前一种方法完全相同。