pandas中的更改数据类型

         在处理数据时,可能会遇到数据类型不一致的问题。例如,通过爬虫采集到的数据都是整型的数据,在使用数据时希望保留两位小数点,这时就需要将数据的类型转换成浮点型。针对这种问题,既可以创建Pandas对象时明确指定数据的类型,也可以使用astype()方法to_numeric()函数进行转换,具体如下。

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

        astype(dtype,copy=True,errors=‘raises’, kwargs)**

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

               1. dtype:表示数据的类型。

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

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

接下来通过代码演示:
pandas中的更改数据类型_第1张图片

import pandas as pd                       #创建DataFrame对象
jk=pd.DataFrame({'A':['1','1.2','4.2']
                ,'B':['-9','70','88']
                ,'C':['x','5.0','0']})
jk

jk.dtypes

jk['B'].astype(dtype='int')          #转换为int

jk['A'].astype(dtype='float')

pandas中的更改数据类型_第2张图片
#errors='ignore’的用法

jk['C'].astype(dtype='int',errors='ignore') 

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

      astype()方法虽然可以转换数据的类型,但是它存在着一些局限性,只要待转换的数据中存在数字以外的字符,在使用astype()方法进行类型转换时就会出现错误,而to_numeric()函数可以解决这个问题。

     to_numeric()函数可以将传入的参数转换为数值类型,语法如下:
       pandas.to_numeric(arg,errors=‘raise’,downcast=None)

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

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

  2. errors:错误采取的处理方式,参数有:“raise”,“coerce”,“ignore”.
    (1)raise:无效的解析将引发异常

    (2)coerce:无效的解析设置为NaN              //这个在astype里面没有

    (3)ignore:无效的解析将返回输入

接下来通过代码演示:
pandas中的更改数据类型_第3张图片

import pandas as pd       #to_numeric转换的数据是list,tuple,Series,不能直接对DataFrame转换
ser_obj=pd.Series(['1','4.2','1.2'])
ser_obj

pd.to_numeric(ser_obj)

import pandas as pd                             #
jk=pd.Series(['1','4.2','k'])
jk

pd.to_numeric(jk,errors='coerce')

由于to_numeric()不能直接对DataFrame直接使用,所以可以使用apply方法,让它对全体DataFrame生效

pandas中的更改数据类型_第4张图片

import pandas as pd
jk=pd.DataFrame({'A':['1','1.2','4.2']
                ,'B':['-9','70','88']
                ,'C':['x','5.0','0']})
jk

jkp=jk.apply(pd.to_numeric,errors='coerce')
jkp

如果不使用该方法会出错
pandas中的更改数据类型_第5张图片



作者:KJ.JK
本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。
文章对你有所帮助的话,欢迎给个赞或者 star 呀,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习呀。

你可能感兴趣的:(数据分析中的pandas,python,pandas)