📌  相关文章
📜  如何在 Pandas DataFrame 中将字符串转换为浮点数?(1)

📅  最后修改于: 2023-12-03 15:24:18.382000             🧑  作者: Mango

如何在 Pandas DataFrame 中将字符串转换为浮点数?

在 Pandas DataFrame 中,字符串类型的数据有时需要转换为浮点数类型,这可以使用 astype() 方法实现。astype() 方法可以将一列数据类型转换为指定数据类型。下面是实现的代码片段:

import pandas as pd

# 创建一个 DataFrame 对象
df = pd.DataFrame({'A': ['1.23', '2.34', '3.45', '4.56', '5.67']})

# 将字符串列转换为浮点型
df['A'] = df['A'].astype(float)

# 打印结果
print(df)

上述代码中的 astype(float) 语句将字符串列 A 转换为浮点数类型。astype() 方法内也可以传入其他数据类型,如 int、bool 等。如果转换后的字符串不是纯数字格式(如包含其他字符或空格),则会引发 ValueError 异常。

如果需要批量转换多列数据类型,可以使用 apply() 或 applymap() 方法实现。apply() 方法适用于 DataFrame 中的一整行或一整列,applymap() 方法适用于 DataFrame 中的每个单元格。下面是实现的代码片段:

import pandas as pd

# 创建一个 DataFrame 对象
df = pd.DataFrame({'A': ['1.23', '2.34', '3.45', '4.56', '5.67'], 'B': ['1.1', '2.2', '3.3', '4.4', '5.5'], 'C': ['1.0', '2.0', '3.0', '4.0', '5.0']})

# 批量转换多列数据类型
df = df.apply(lambda x: x.astype(float))

# 打印结果
print(df)

上述代码中的 apply() 方法将所有列的数据类型转换为浮点数类型,lambda 函数会对每一列进行单独处理。

除了上面提到的方法外,还可以使用 pd.to_numeric() 方法将字符串转换为数字类型。pd.to_numeric() 方法也支持缺失值的处理(如将字符串 'NaN' 转换为 np.nan),并且可以处理整个 DataFrame 或 Series 对象。下面是实现的代码片段:

import pandas as pd
import numpy as np

# 创建一个 DataFrame 对象
df = pd.DataFrame({'A': ['1.23', '2.34', '3.45', '4.56', '5.67'], 'B': ['1.1', '2.2', np.nan, '4.4', '5.5'], 'C': ['1.0', '2.0', '3.0', np.nan, '5.0']})

# 将字符串列转换为浮点型
df = df.apply(pd.to_numeric, errors='coerce')

# 打印结果
print(df)

上述代码中的 pd.to_numeric() 方法将所有列的数据类型转换为数字类型,并将无法转换的数据类型转换为缺失值(np.nan)。errors='coerce' 参数表示要将无法转换的数据类型转换为缺失值。