pandas 字符串转换数字

pandas 字符串转换数字

pandas 字符串转换数字

在数据处理和分析过程中,经常会遇到将字符串转换为数字的需求。特别是在使用pandas进行数据处理时,经常需要将存储为字符串的数据转换为数字类型,以便进行统计分析、可视化等操作。本文将详细介绍如何使用pandas进行字符串到数字的转换。

1. 使用 astype() 方法转换字符串到数字

在pandas中,我们可以使用 astype() 方法将字符串转换为数字类型。astype() 方法可以指定转换为的数据类型,包括整数、浮点数等。下面是一个简单的示例:

import pandas as pd

# 创建一个包含字符串数字的Series
s = pd.Series(['1', '2', '3', '4'])

# 查看s的数据类型
print("转换前的数据类型:", s.dtype)

# 将字符串转换为整数
s = s.astype(int)

# 查看转换后的数据类型
print("转换后的数据类型:", s.dtype)
Python

运行上面的代码,输出如下:

转换前的数据类型: object
转换后的数据类型: int64
Python

可以看到,通过 astype(int) 将字符串转换为整数类型,数据类型从 object 变为了 int64。

2. 使用 to_numeric() 方法转换字符串到数字

除了 astype() 方法外,pandas还提供了 to_numeric() 方法来将字符串转换为数字类型。与 astype() 方法不同的是,to_numeric() 方法可以处理含有混合类型数据的情况,比如含有缺失值的数据。

下面是一个使用 to_numeric() 方法的示例:

# 创建一个包含混合类型数据的Series
s = pd.Series(['1', '2', 'three', '4'])

# 将字符串转换为数字,并设置errors参数处理非数字情况
s = pd.to_numeric(s, errors='coerce')

print(s)
Python

运行上面的代码,输出如下:

0    1.0
1    2.0
2    NaN
3    4.0
dtype: float64
Python

可以看到,在使用 to_numeric() 方法时,通过设置 errors 参数为 ‘coerce’,可以将无法转换为数字的值转换为 NaN。

3. 处理带有单位的字符串数据

在实际数据处理中,有时字符串中含有单位,比如货币符号、百分号等,需要将这些单位去除后转换为数字。这时可以使用字符串的处理方法结合转换方法来实现。

下面是一个处理带有货币符号的字符串的示例:

# 创建一个包含货币符号的Series
s = pd.Series(['100', '200', '300'])

# 去除货币符号,并转换为数字
s = s.str.replace('', '').astype(int)

print(s)
Python

运行上面的代码,输出如下:

0    100
1    200
2    300
dtype: int64
Python

通过 str.replace('$', '') 去除货币符号后,再通过 astype(int) 转换为数字。

4. 批量转换多列数据

在处理数据集时,经常会需要对多列数据进行转换。可以使用 apply() 方法结合 to_numeric() 方法来批量转换多列数据。

下面是一个批量转换多列数据的示例:

# 创建一个包含多列字符串数据的DataFrame
df = pd.DataFrame({'A': ['1', '2', '3'],
                   'B': ['4', '5', '6'],
                   'C': ['7', '8', 'nine']})

# 批量转换多列数据为数字类型
df = df.apply(pd.to_numeric, errors='coerce')

print(df)
Python

运行上面的代码,输出如下:

     A    B    C
0  1.0  4.0  7.0
1  2.0  5.0  8.0
2  3.0  6.0  NaN
Python

可以看到,通过 apply(pd.to_numeric, errors='coerce') 可以批量转换多列数据为数字类型,并处理含有非数字的情况。

结论

本文介绍了在pandas中如何将字符串转换为数字类型。通过使用 astype() 方法、to_numeric() 方法以及字符串处理方法,我们可以轻松地实现对字符串数据的转换。在实际数据处理和分析中,灵活运用这些方法,可以高效地处理数据,为进一步分析提供便利。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册