Python数据处理:Pandas类型转换实战指南

月亮慢半拍
月亮慢半拍
发布时间:2026-10-12 | 4人浏览过
原创

本文深入解析Pandas中数据类型的转换方法。重点介绍使用astype进行基础类型转换,以及处理含缺失值数据时to_numeric函数的errors和downcast参数应用。同时讲解Categorical分类数据的创建、排序及CategoricalDtype自定义顺序排序的高级技巧,帮助开发者高效处理数据清洗与类型优化问题。

在Pandas数据处理过程中,将数据转换为字符串类型是常见需求。

tips['sex_str'] = tips['sex'].astype(str)

数值类型的转换通常涉及将其他数据类型转换为整数或浮点数。

除了常规方法,还可以利用to_numeric()函数来实现数值类型的转换。

DataFrame要求每一列具有统一的数据类型。当数据中存在非NaN的缺失值(例如字符串'missing'或'null')时,整列数据会被自动推断为字符串类型而非数值型。此时,使用to_numeric()函数可以有效处理此类情况,将其转换为数值。

#创造包含'missing'为缺失值的数据
tips_sub_miss = tips.head(10)
tips_sub_miss.loc[[1,3,5,7],'total_bill'] = 'missing'
tips_sub_miss

上述操作会自动将数据转换为字符串类型。

若直接尝试使用astype进行转换,可能会遇到报错情况。

tips_sub_miss['total_bill'].astype(float)

通过调用to_numeric()函数可以解决该问题。

直接使用to_numeric()函数还是会报错,添加errors参数

该函数支持errors可变参数配置。

  • 当设置ignore参数时,遇到无法转换的错误会直接跳过(保持原类型不变)。
  • 当设置coerce参数时,遇到无法转换的值会强制转换为NaN。
pd.to_numeric(tips_sub_miss['total_bill'],errors='ignore')

pd.to_numeric(tips_sub_miss['total_bill'],errors='coerce')

to_numeric函数支持向下转型操作。

具体涉及downcast参数设置。

  • 其中integer和signed代表最小的有符号整数数据类型。
  • float代表最小的浮点数据类型。
  • unsigned代表最小的无符号整数数据类型。

当downcast参数设置为float后,total_bill列的数据类型由float64成功降为float32。

pd.to_numeric(tips_sub_miss['total_bill'],errors='coerce',downcast='float')

分类数据(Category)类型的使用。

可以通过pd.Categorical()创建categorical数据,Categorical()构造函数主要包含三个常用参数。

  • 第一个参数values,若values中的值不在categories参数指定的范围内,这些值将被替换为NaN。
  • 第二个参数categories,用于指定可能存在的类别数据集合。
  • 第三个参数ordered,用于指定分类数据是否有序。
s = pd.Series(pd.Categorical(["a","b","c","d"],categories=['c','b','a']))

分类数据在排序时会自动依据分类规则进行排序。

通过指定ordered参数可以控制排序顺序。

from pandas.api.types import CategoricalDtype
# 创建一个分类  ordered  指定顺序
cat = CategoricalDtype(categories=['B','D','A','C'],ordered=True)
# 指定series_cat1转换类型为创建的分类类型
series_cat1 = series_cat.astype(cat)
print(series_cat.sort_values())
print(series_cat1.sort_values())

数据类型转换小结。

知识点内容
Numpy的特点1. Numpy是一个高效科学计算库,Pandas的数据计算功能是对Numpy的封装

2. ndarray是Numpy的基本数据结构,Pandas的Series和DataFrame好多函数和属性都与ndarray一样

3. Numpy的计算效率比原生Python效率高很多,并且支持并行计算
Pandas数据类型转换1. Pandas除了数值型的int 和 float类型外,还有object ,category,bool,datetime类型

2. 可以通过as_type 和 to_numeric 函数进行数据类型转换
Pandas 分类数据类型1. category类型,可以用来进行排序,并且可以自定义排序顺序

2. CategoricalDtype可以用来定义顺序

至此,关于Python数据处理中Pandas类型转换的实现方法已介绍完毕。如需了解更多Pandas类型转换相关内容,建议搜索本站过往文章或继续浏览后续相关文章。感谢大家的支持!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表