Python更改数据类型——astype()方法和to_numeric()函数

文章目录

  • 明确指定数据的类型
    • 通过dtypes属性进行查看
    • 创建Pandas对象指定数据类型
  • 转换数据类型
    • 通过astype()方法强制转换数据的类型
    • 通过to_numeric()函数转换数据类型


明确指定数据的类型

通过dtypes属性进行查看

import pandas as pddf = pd.DataFrame({'A': ['1', '2', '4'],'B': ['9', '-80', '5.3'],'C': ['x', '5.9', '0']})
print("df.dtypes:\n", df.dtypes)
print("df:\n", df)

输出结果:

df.dtypes:A    object
B    object
C    object
dtype: object
df:A    B    C
0  1    9    x
1  2  -80  5.9
2  4  5.3    0

创建Pandas对象指定数据类型

data = pd.DataFrame({'A': ['1', '2', '4'],'B': ['9', '80', '5']},dtype='int')
print("data:\n", data)
print("data.dtypes:\n", data.dtypes)

输出结果:

data:A   B
0  1   9
1  2  80
2  4   5
data.dtypes:A    int32
B    int32
dtype: object

转换数据类型

通过astype()方法强制转换数据的类型

astype(dypte, copy=True, errors = ‘raise’, **kwargs)

上述方法中部分参数表示的含义如下:

dtype:表示数据类型

copy:是否建立副本,默认为True

errors:错误采取的处理方式,可以取值为raise或ignore,默认为raise。其中raise表示允许引发异常,ignore表示抑制异常。


运用astype()方法将DataFrame对象df中B列数据的类型转换为int类型:

print("df['B']:\n", df['B'])
print("df['B'].astype:\n", df['B'].astype(dtype='float'))
df['B']:0      9
1    -80
2    5.3
Name: B, dtype: object
df['B'].astype:0     9.0
1   -80.0
2     5.3
Name: B, dtype: float64

之所以没有将所有列进行类型转换是因为C列中有非数字类型的字符,无法将其转换为int类型,若强制转换会出现ValueError异常。(当参数errors取值ignore时可以抑制异常,但抑制异常后输出结果仍是未转换类型之前的对象——也就是并未进行数据类型转换的操作,只是不会报错罢了

print("df['C']:\n", df['C'])
print("df['C'].astype(errors='ignore'):\n", df['C'].astype(dtype='float', errors='ignore'))

输出结果:

df['C']:0      x
1    5.9
2      0
Name: C, dtype: object
df['C'].astype(errors='ignore'):0      x
1    5.9
2      0
Name: C, dtype: object

通过to_numeric()函数转换数据类型

to_numeric()函数不能直接操作DataFrame对象

pandas.to_numeric(arg, errors=‘raise’, downcast=None)

上述函数中常用参数表示的含义如下:

arg:表示要转换的数据,可以是list、tuple、Series

errors:错误采用的处理方式可以取值除raise、ignore外,还可以取值coerce,默认为raise。其中raise表示允许引发异常,ignore表示抑制异常。

to_numeric()函数较之astype()方法的优势在于解决了后者的局限性:只要待转换的数据中存在数字以外的字符,在使用后者进行类型转换时就会出现错误,而to_numeric()函数之所以可以解决这个问题,就源于其errors参数可以取值coerce——当出现非数字字符时,会将其替换为缺失值之后进行数据类型转换。


se = pd.Series(df['A'])
se1 = pd.Series(df['B'])
se2 = pd.Series(df['C'])
print("df['A']:\n", df['A'])
print("to_numeric(df['A']):\n", pd.to_numeric(se))
print("df['B']:\n", df['B'])
print("to_numeric(df['B']):\n", pd.to_numeric(se1))
print("df['C']:\n", df['C'])
print("to_numeric(df['C'], errors='ignore'):\n", pd.to_numeric(se2, errors='ignore'))
print("to_numeric(df['C'], errors='coerce'):\n", pd.to_numeric(se2, errors='coerce'))

输出结果:

df['A']:0    1
1    2
2    4
Name: A, dtype: object
to_numeric(df['A']):0    1
1    2
2    4
Name: A, dtype: int64
df['B']:0      9
1    -80
2    5.3
Name: B, dtype: object
to_numeric(df['B']):0     9.0
1   -80.0
2     5.3
Name: B, dtype: float64
df['C']:0      x
1    5.9
2      0
Name: C, dtype: object
to_numeric(df['C'], errors='ignore'):0      x
1    5.9
2      0
Name: C, dtype: object
to_numeric(df['C'], errors='coerce'):0    NaN
1    5.9
2    0.0
Name: C, dtype: float64

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443857.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不骗你,没读这一篇,你不可能懂二分

上篇文章讲动态规划获得了80k浏览,这次的二分也值得你们一看,这个系列是特别用心写的,准备出书的哦 动态规划 3.0 引子 图书馆自习的时候,一女生背着一堆书进阅览室,结果警报响了,大妈让女生看是哪本书把警报弄响了,女生把书倒出…

Python之数据合并——【concat()函数、merge()函数、join()方法、combine_first()方法】

文章目录轴向堆叠数据——concat()函数横向堆叠与外连接纵向堆叠与内连接主键合并数据——merge()函数内连接方式外连接方式左连接方式右连接方式其他根据行索引合并数据——join()方法四种连接方式行索引与列索引重叠合并重叠数据——combine_first()方法轴向堆叠数据——conc…

超硬核!操作系统学霸笔记,考试复习面试全靠它

之后会发布基于基础知识的大部分算法的模拟代码合集,敬请关注。 进程基础 进程的基本概念 程序顺序执行的特征: 1)顺序性:处理机严格按照程序所规定的顺序执行,每一步操作必须在下一步操作开始前执行 2)封…

配置tomcat6.0的HTTPS(单向)

利用JDK自带的产生证书的工具 生成证书 建立一个脚本文件,内容如下: set SERVER_DN"CNServer, OUshare, Oshare, Lsz, Sgd, CCN" set CLIENT_DN"CNClient, OUshare, Oshare, Lsz, Sgd, CCN" set KS_PASS-storepass changeit set KE…

Python之数据重塑——【stack()方法和unstack()方法、pivot()方法】

文章目录重塑层次化索引对于单层索引的DataFrame类对象stack()方法unstack()方法对于多层索引的DataFrame类对象辨析操作内层索引与外层索引的区别查看多层索引对象转换后的类型轴向旋转——pivot()方法重塑层次化索引 Pandas中重塑层次化索引的操作主要是stack()方法和unstac…

超硬核!学霸把操作系统经典算法给敲完了!要知行合一

上期的笔记,浏览快1万了,既然关注的人很多,那就发出来承诺过的算法全模拟,希望帮到你们。 上期的操作系统学霸笔记,考试复习面试全靠它 一、模拟进程调度 功能 data.h #ifndef _Data_h_ #define _Data_h_#include …

Python之数据转换——【rename()方法、cut()函数、get_dummies()函数】

文章目录重命名轴索引离散化连续数据哑变量处理类别型数据重命名轴索引 rename( self, mapper: Optional[Renamer] None, *, index: Optional[Renamer] None, columns: Optional[Renamer] None, axis: Optional[Axis] None, copy: bool True, inplace: bool False, level…

超硬核!数据结构学霸笔记,考试面试吹牛就靠它

上次发操作系统笔记,很快浏览上万,这次数据结构比上次硬核的多哦,同样的会发超硬核代码,关注吧。 超硬核!操作系统学霸笔记,考试复习面试全靠它 第一次笔记(复习c,课程概述&#xff…

Python之数据拆分——groupby()方法

文章目录groupby()方法通过列名进行分组通过Series对象进行分组Series对象与原数据的行索引长度相等Series对象与原数据的行索引长度不等通过字典进行分组按照columns轴的方向进行分组按照index轴的方向进行分组通过函数进行分组groupby()方法 groupby( self, byNone, axis0, l…

超硬核!小白读了这篇文章,就能在算法圈混了

作为一只超级硬核的兔子,从来不给你说废话,只有最有用的干货!这些神级算法送给你 目录 第一节 1.1bogo排序 1.2位运算 1.3打擂台 1.4morris遍历 第二节 2.1睡眠排序 2.2会死的兔子 2.3矩阵快速幂 2.4摔手机/摔鸡蛋 时空复杂度目录 …

Python之数据聚合——aggregate()方法

文章目录使用内置统计方法聚合数据面向列的聚合方法aggregate()方法对每一列数据应用同一个函数对某列数据应用不同的函数对不同列数据应用不同函数使用内置统计方法聚合数据 实现数据拆分成组并分别计算平均数的操作 代码: import pandas as pd import numpy as…

超硬核十万字!全网最全 数据结构 代码,随便秒杀老师/面试官,我说的

本文代码实现基本按照《数据结构》课本目录顺序,外加大量的复杂算法实现,一篇文章足够。能换你一个收藏了吧? 当然如果落下什么了欢迎大家评论指出 目录 顺序存储线性表实现 单链表不带头标准c语言实现 单链表不带头压缩c语言实现 约瑟…

Python之分组级运算——【transform()方法、apply()方法】

文章目录数据转换——transform()方法数据应用——apply()方法数据转换——transform()方法 使用aggregate()方法进行聚合运算已经在上一篇博客中详细阐述,我们知道aggregate()方法返回的数据集的形状(shape)与被分组的数据集的形状是不同的…

java限制在同一台电脑上只允许有一个用户登录系统

在web应用系统中,出于安全性考虑,经常需要对同一客户端登录的用户数量和一个客户同时在多个客户端登陆进行限制。 具体一点就是: 1、在同一台电脑上一次只允许有一个用户登录系统; 2、一个用户在同一时间只允许在一个客户端登录…

Matplotlib——绘制图表

文章目录通过figure()函数创建画布通过subplot()函数创建单个子图通过subplots()函数创建多个子图通过add_subplot()方法添加和选中子图添加各类标签绘制常见图表绘制直方图——hist()函数绘制散点图——scatter()函数绘制柱状图——bar()函数设定线条的相关参数本地保存图片通…

限制在同一台电脑上只允许有一个用户登录系统

在web应用系统中,出于安全性考虑,经常需要对同一客户端登录的用户数量和一个客户同时在多个客户端登陆进行限制。 具体一点就是: 1、在同一台电脑上一次只允许有一个用户登录系统; 2、一个用户在同一时间只允许在一个客户端登录…

Seaborn——绘制统计图形

文章目录可视化数据的分布绘制单变量分布绘制双变量分布绘制成对的双变量分布用分类数据绘图类别散点图通过stripplot()函数画散点图swarmplot()函数类别内的数据分布绘制箱型图绘制提琴图类别内的统计估计绘制条形图绘制点图可视化数据的分布 绘制单变量分布 一般采用最简单…

Bokeh——交互式可视化库

文章目录前言如何通过Plotting绘制图形前言 Bokeh是一个专门针对Web浏览器使用的交互式可视化库,这是与其他可视化库相比最核心的区别。 如何通过Plotting绘制图形 Plotting是以构建视觉符号为核心的接口,可以结合各种视觉元素(例如&#x…

指针、引用以及const限定符、constexpr限定符

文章目录复合类型引用概念与使用引用的定义注意指针概念声明方式取地址符指针值空指针利用指针访问对象赋值和指针void* 指针指向指针的指针指向指针的引用初始化所有指针有多重含义的某些符号const限定符概念const的引用指针和const顶层const和底层constconstexpr和常量表达式…

关键字typedef、关键字using、auto类型说明符和declytpe类型指示符

文章目录类型别名概念关键字 typedef别名声明 (alias declaration) using指针、常量和类型别名类型别名简化多维数组指针auto类型说明符概念复合类型、常量和autodecltype类型指示符概念decltype和引用类型别名 概念 有两种方法可用于定义类型别名。 关键字 typedef typede…