如何在Pandas中把对象转换为浮点数(附实例)

1,222 阅读2分钟

你可以使用以下方法之一,将pandas DataFrame中的一列从对象转换为浮点:

方法1:使用 astype()

df['column_name'] = df['column_name'].astype(float)

方法2:使用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

方法1:使用astype()将对象转换为浮点数

下面的代码显示了如何使用**astype()**函数将 DataFrame 中的 points 列从对象转换为浮点数:

#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

注意,现在点数列的数据类型是float64

方法2:使用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

注意,现在点数列的数据类型是float64

还要注意的是,这个方法产生的结果与之前的方法完全相同。

其他资源

下面的教程解释了如何在pandas中执行其他常见任务:

如何在Pandas中把布尔值转换成整数值
如何在Pandas中把日期时间转换成字符串
如何在Pandas中把列转换成int