机器学习python中用pd.read_excel()读取数据,数据类型是object类型,即非numeric数据类型,此时有两种方法查找非法字符

python中用pd.read_excel()读取数据,数据类型是object类型,原因可能是包含空格或者非法字符,即非numeric数据类型,此时有两种方法查找空格
方法1:用excel表格查询,这种适合数据量少的文件,而且是因为空格导致的,空表格(不含任何字符)与含有空格字符的表格是有区别的,含有空格字符的表格左上角有绿色斜三角,因此你找到这种表格左上角含有绿色斜三角的格子,单击然后按下删除键,删除其中的空格字符
如果你没找到绿色斜三角,用鼠标点击任意空格,绿色斜三角就会显示出来
机器学习python中用pd.read_excel()读取数据,数据类型是object类型,即非numeric数据类型,此时有两种方法查找非法字符_第1张图片
方法2 用python代码查询,我的数据集用excel打开表是这种
机器学习python中用pd.read_excel()读取数据,数据类型是object类型,即非numeric数据类型,此时有两种方法查找非法字符_第2张图片
图中红色箭头所指的表格含有两个数字,并且用“,”隔开,这将导致该列(column)的数据类型是object,无法参与机器学习或其他数值计算
如何找出这种隐蔽的非法字符呢
我用jupyter notebook,先读取文件

机器学习python中用pd.read_excel()读取数据,数据类型是object类型,即非numeric数据类型,此时有两种方法查找非法字符_第3张图片
机器学习python中用pd.read_excel()读取数据,数据类型是object类型,即非numeric数据类型,此时有两种方法查找非法字符_第4张图片
倒数第二行告诉我们,有28个float64类型,46个int64类型,5个object类型
用一下代码找出是哪些columns是object,当然你也可以从上面两张图的后面的数据类型一个个查看(如果columns多的话,就很麻烦)
for循环中的79是因为我的columns有79个,不多解释
结果显示了我的数据哪一列、该列的columns名字以及数据类型,
机器学习python中用pd.read_excel()读取数据,数据类型是object类型,即非numeric数据类型,此时有两种方法查找非法字符_第5张图片
接下来的代码是根据该列(column)的名字找出非法字符所在的行,如下图所示,显示在4164,4165…等行出现了非法字符找到’吸烟量支/日(吸烟者均值)'所在的4164行
机器学习python中用pd.read_excel()读取数据,数据类型是object类型,即非numeric数据类型,此时有两种方法查找非法字符_第6张图片
从excel表格中找到columns’吸烟量支/日(吸烟者均值)'对应的4164行,
你发现该表格并没有,非法字符,反而4166行有非法字符,如下图所示这是为什么呢?因为pandas的DataFrame中columns并不算做行,而且python是从0开始,与excel从1开始,其实我用的是wps哈哈
接下来一个个找到该非法字符,删除就完了
如果你没找到绿色斜三角,用鼠标点击任意空格,绿色斜三角就会显示出来

机器学习python中用pd.read_excel()读取数据,数据类型是object类型,即非numeric数据类型,此时有两种方法查找非法字符_第7张图片

你可能感兴趣的:(数据挖掘,机器学习,python,数据分析,excel)