大家好,欢迎来到IT知识分享网。
pandas的dataframe数据类型转换
在使用pandas库进行数据分析时,有时候会需要将object类型转换成数值类型(float,int),那么如何做呢?
主要有以下三种方法:创建时指定类型,df.astype强制类型转换,以及使用pd.to_numeric() 转换成适当数值类型。
一,创建时指定类型
import numpy as np
import pandas as pd
dfx = pd.DataFrame([["11",1.2,3],['22',4.8,5]],
columns = list('abc'),
dtype = object)
dfx.dtypes
二,使用df.astype()强制类型转换
#强制类型转换
dfx[['a','b','c']] = dfx[['a','b','c']].astype('float32')
dfx.dtypes
三,使用pd.to_numeric() 转换成适当数值类型
import pandas as pd
dfy = pd.DataFrame([["11",1.2,3],['22',4.8,'?']],
columns = list('abc'),
dtype = object)
# 将某列转换成数值类型, pd.to_numeric只能作用到单列
dfy['a'] = pd.to_numeric(dfy['a'])
# 利用apply将它作用到整个dataframe,遇到错误时候忽略,不予转换该列
dfy1 = dfy.apply(pd.to_numeric, errors = 'ignore')
print(dfy1.dtypes)
# 遇到错误时候转换成nan
dfy2 = dfy.apply(pd.to_numeric, errors = 'coerce')
print(dfy2.dtypes)
# 遇到错误时候报错
dfy3 = dfy.apply(pd.to_numeric, errors = 'raise')
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/26113.html