如何在 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

另请注意,此方法产生的结果与前一种方法完全相同。

 

posted @ 2022-12-29 20:02  DaisyLinux  阅读(2682)  评论(0编辑  收藏  举报