pandas 字符串转换数字
在数据处理和分析过程中,经常会遇到将字符串转换为数字的需求。特别是在使用pandas进行数据处理时,经常需要将存储为字符串的数据转换为数字类型,以便进行统计分析、可视化等操作。本文将详细介绍如何使用pandas进行字符串到数字的转换。
1. 使用 astype() 方法转换字符串到数字
在pandas中,我们可以使用 astype()
方法将字符串转换为数字类型。astype()
方法可以指定转换为的数据类型,包括整数、浮点数等。下面是一个简单的示例:
运行上面的代码,输出如下:
可以看到,通过 astype(int)
将字符串转换为整数类型,数据类型从 object 变为了 int64。
2. 使用 to_numeric() 方法转换字符串到数字
除了 astype()
方法外,pandas还提供了 to_numeric()
方法来将字符串转换为数字类型。与 astype()
方法不同的是,to_numeric()
方法可以处理含有混合类型数据的情况,比如含有缺失值的数据。
下面是一个使用 to_numeric()
方法的示例:
运行上面的代码,输出如下:
可以看到,在使用 to_numeric()
方法时,通过设置 errors 参数为 ‘coerce’,可以将无法转换为数字的值转换为 NaN。
3. 处理带有单位的字符串数据
在实际数据处理中,有时字符串中含有单位,比如货币符号、百分号等,需要将这些单位去除后转换为数字。这时可以使用字符串的处理方法结合转换方法来实现。
下面是一个处理带有货币符号的字符串的示例:
运行上面的代码,输出如下:
通过 str.replace('$', '')
去除货币符号后,再通过 astype(int)
转换为数字。
4. 批量转换多列数据
在处理数据集时,经常会需要对多列数据进行转换。可以使用 apply()
方法结合 to_numeric()
方法来批量转换多列数据。
下面是一个批量转换多列数据的示例:
运行上面的代码,输出如下:
可以看到,通过 apply(pd.to_numeric, errors='coerce')
可以批量转换多列数据为数字类型,并处理含有非数字的情况。
结论
本文介绍了在pandas中如何将字符串转换为数字类型。通过使用 astype()
方法、to_numeric()
方法以及字符串处理方法,我们可以轻松地实现对字符串数据的转换。在实际数据处理和分析中,灵活运用这些方法,可以高效地处理数据,为进一步分析提供便利。