最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

Python读取Excel时把文本数据自动识别为float或int类型的解决办法

互联网 admin 3浏览 0评论

Python读取Excel时把文本数据自动识别为float或int类型的解决办法

在使用Python做数据分析时,经常需要导入保存在Excel中的数据集文件,但很多时候Python的Pandas会把Excel中的文本数据(例如员工编号,身份证号,不同城市的数字代码等数值型文本)识别为’float’或’int’类型, 而这并不是我们所需要的,特别是在有些机器学习模型中需要对连续型数据和离散型数据(字符串,也就是文本)进行严格区分。看下面的栗子:

数据集Excel长这样:

现在我们用Pandas把该Excel文件读入Python中:

data=pd.read_excel(r"F:\Testdata.xlsx")
data 

导入Python后的数据长这样:

”社保卡号“一列数据前面的0被自动去掉了(因为被识别成int的数据类型了)。

查看一下导入Python后两列文本的数据类型:

data.info() 


可以看出两列文本数据被识别成了“int"类型,并不是原来的文本数据。

解决办法:

在读取Excel文件的语句中指定每列数据的数据类型,看下面代码:

# 在导入数据时,把两列文本数据的数据类型指定为“str"
dtype={
      '社保卡号':str,
      '商品编码':str
       }   
data=pd.read_excel(r"F:\Testdata.xlsx",dtype=dtype)
data  

再看看此时这两列文本数据的类型:

data.info() 

Python读取Excel时把文本数据自动识别为float或int类型的解决办法

在使用Python做数据分析时,经常需要导入保存在Excel中的数据集文件,但很多时候Python的Pandas会把Excel中的文本数据(例如员工编号,身份证号,不同城市的数字代码等数值型文本)识别为’float’或’int’类型, 而这并不是我们所需要的,特别是在有些机器学习模型中需要对连续型数据和离散型数据(字符串,也就是文本)进行严格区分。看下面的栗子:

数据集Excel长这样:

现在我们用Pandas把该Excel文件读入Python中:

data=pd.read_excel(r"F:\Testdata.xlsx")
data 

导入Python后的数据长这样:

”社保卡号“一列数据前面的0被自动去掉了(因为被识别成int的数据类型了)。

查看一下导入Python后两列文本的数据类型:

data.info() 


可以看出两列文本数据被识别成了“int"类型,并不是原来的文本数据。

解决办法:

在读取Excel文件的语句中指定每列数据的数据类型,看下面代码:

# 在导入数据时,把两列文本数据的数据类型指定为“str"
dtype={
      '社保卡号':str,
      '商品编码':str
       }   
data=pd.read_excel(r"F:\Testdata.xlsx",dtype=dtype)
data  

再看看此时这两列文本数据的类型:

data.info() 

发布评论

评论列表 (0)

  1. 暂无评论