Pandas中进行数据类型转换有二种基本方法:

  • 使用astype()函数进行强制类型转换
  • 使用Pandas提供的函数如to_numeric()、to_datetime()

举例数据

import numpy as np
import pandas as pddata = pd.read_csv('data.csv', encoding='gbk') #因为数据中含有中文数据
data

1.使用astype()函数进行强制类型转换

data['客户编号'].astype('object')
data['客户编号'] = data['客户编号'].astype('object')

输出结果:

但从上面这个例子来看,astype()函数还是不错的,但是下面的例子就有点差强人意了。

data['2017'].astype('float')

输出结果:

data['所属组'].astype('int')

输出结果:

data['状态'].astype('bool')

输出结果:

乍一看,结果看起来不错,但仔细观察后,会发现一个大问题。那就是所有的值都被替换为True了,但是该列中包含好几个N标志,所以astype()函数在该列也是失效的。

总结一下astype()函数有效的情形:

  1. 数据列中的每一个单位都能简单的解释为数字(2, 2.12等)
  2. 数据列中的每一个单位都是数值类型且向字符串object类型转换

2.利用Pandas的一些辅助函数进行类型转换

Pandas的astype()函数和复杂的自定函数之间有一个中间段,那就是Pandas的一些辅助函数。这些辅助函数对于某些特定数据类型的转换非常有用(如to_numeric()、to_datetime())。所属组数据列中包含一个非数值,用astype()转换出现了错误,然而用to_numeric()函数处理就好很多。

pd.to_numeric(data['所属组'], errors='coerce').fillna(0)

输出结果:

可以看到,非数值被替换成0.0了。
参数解释:

(arg    :(标量,列表,元组,一维数组或系列) 要转换的参数。errors :{‘ignore’, ‘raise’, ‘coerce’}, 默认为“raise”如果为“ raise”,则无效的解析将引发异常。如果为“coerce”,则将无效解析设置为NaN。如果为“ ignore”,则无效的解析将返回输入。downcast {'integer','signed','unsigned','float'},默认值 None,如果不是None;并且数据已成功转换为数字dtype(或者数据是从数字开始的),则根据以下规则将结果数据转换为可能的最小数字dtype:'integer'或'signed':最小的有符号int dtype(最小值:np.int8)'unsigned'         :最小的无符号int dtype(最小值:np.uint8)'float'            :最小的float dtype(最小值:np.float32)

Pandas中的to_datetime()函数可以把单独的year、month、day三列合并成一个单独的时间戳。

pd.to_datetime(data[['day', 'month', 'year']])


完成数据列的替换:

data['new_date'] = pd.to_datetime(data[['day', 'month', 'year']]) #新产生的一列数据
data['所属组'] = pd.to_numeric(data['所属组'], errors='coerce').fillna(0)

数据处理之Pandas中数据类型转换相关推荐

  1. Python数据处理库pandas中的DataFrame数据结构简介

    pandas 中有两大 数据结构 Series和 DataFrame. 本文主要介绍DataFrame的用法.DataFrame可以处理 表格数据. Series介绍在 Python数据处理库pand ...

  2. HQL语句中数据类型转换,及hibernate中createQuery执行hql报错

    一.HQL语句中数据类型转换: 我们需要从数据库中取出序号最大的记录,想到的方法就是使用order by子句进行排序(desc倒序),然后取出第一个对象,可是当初设计数据库时(我们是在原来的数据库的基 ...

  3. python的六大数据类型中可以改变的数据类型为_Python中数据类型转换

    数据类型转换 将数据由当前类型变化为其他类型的操作就是数据类型转换.数据类型转换分为两类,分别是自动数据类型转换和 强制数据类型转换. 自动转换(隐式转换) 自动转换时程序根据运算要求进行的转换,不许 ...

  4. java中数据类型转换、ASCII编码

    数据类型转换: JAVA语言中要求参与计算的数据类型要保持一致,如果不一致则会发生数据类型转换,数据类型转换可分为:自动类型转换(隐式转换)和强制类型转换(显式转换). 自动类型转换:代码不需要特殊处 ...

  5. python中数据类型转换_Python(二).数据类型,数据类型转换

    数据类型 在python中,能够直接处理的的数据类型有以下几种:(这里似乎说法不一样,我这里仅表示自己的观点) (1).数字(Number) (2).字符串(String) (3).布尔值(Bool) ...

  6. Java中数据类型转换大全(个人总结)

    一.字符串转换为其他类型 1.将字符串转化为int型 (1)方法一 int i = Integer.parseInt(String str); (2)方法二 int i = Integer.value ...

  7. Python中数据类型转换

    数据类型转换 将数据由当前类型变化为其他类型的操作就是数据类型转换.数据类型转换分为两类,分别是自动数据类型转换 和 强制数据类型转换. 自动转换(隐式转换) 自动转换时程序根据运算要求进行的转换,不 ...

  8. SQL中数据类型转换

    CAST 和 CONVERT 将某种数据类型的表达式显式转换为另一种数据类型.CAST 和 CONVERT 提供相似的功能. 语法 使用 CAST: CAST ( expression AS data ...

  9. hadoop与java中数据类型转换

    1.hadoop数据类型转换成Java-String类型.toString();即可 2.Int类型-->IntWritable类型IntWritable i = new IntWritable ...

最新文章

  1. FPGA的设计艺术(2)FPGA开发流程
  2. angular 绑定自定义属性_Angular2实现自定义双向绑定属性
  3. 整数划分递归相关问题
  4. Redux Toolkit 使用指南
  5. 中国政法大学政治与公共管理学院丛日云教授在毕业典礼上的演讲在网络上暴红,
  6. 为什么开发移动端web不使用jQuery
  7. matlab图像的邻域操作,matlab图像的邻域操作与块操作 | 学步园
  8. Spring事务原理分析(二)--@Transactional事务属性的解析
  9. 选择一个软件外包公司的入职须知!
  10. 电信天翼路由器 连接另外一个路由器
  11. git 拉取远程分支报错(fatal: ''xxx is not a commit and a branch '' cannot be created from it)
  12. 菜鸟初识脚本 and 脚本语言
  13. Linux攻关之基础模块十 特殊权限
  14. GitHub的使用方法
  15. 1231231312
  16. FPGA经验谈系列文章——FPGA资源评估
  17. 浏览器f12, ::before ::after是什么意思?
  18. 字母x在css中的角色
  19. python彩票分析_128期老铁大乐透预测奖号:大中小码分析
  20. 利用Wolfram Alpha解决数学,金融,物理等应用问题用法举例

热门文章

  1. 计算机宣传部职责,计算机系团总支宣传部第一学期工作总结
  2. 二阶振荡环节的谐振频率_典型环节的频率特性二阶振荡环节.ppt
  3. 关于scope.$index, scope.row是什么意思
  4. matlab绘图之自定义色标colorbar的刻度值
  5. Java 解析摩尔斯电码并生成音频流/文件
  6. 除铜树脂CH-90NA电镀废水回收硫酸铜技术
  7. 猜数字游戏~~~~~~
  8. 阿朱离职京东,重返中国企业服务界
  9. 手机摄像头驱动_打开手机摄像头,就能实现3D全身动捕,相芯发布虚拟形象全身驱动技术...
  10. Spring Cloud Netflix 知识整理