pandas的dataframe如何更改数据类型?

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')

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值