数据预处理 | 使用 Pandas 统一同一特征中不同的数据类型
出现的问题:如图,总消费金额本应该为float类型,此处却显示object
需求:将 TotalCharges 的类型转换成float

使用 pandas.to_numeric(arg, errors='raise', downcast=None) 方法,可将参数转换为数字类型。
(别的类型转换,遇到再补充)
df = pd.read_excel('./data_files/Using_Customer-Churn.xlsx')
# 将df.TotalCharges 转成数字类型的数据,则将无效解析设置为NaN
df.TotalCharges = pd.to_numeric(df.TotalCharges, errors='coerce')
df.isnull().sum()

此时,转换完成!

关于pandas.to_numeric 方法的详细信息可参见:https://www.cjavapy.com/article/532/
—————————— 手动分隔,以下为原来的野生思路 —————————
1 首先要找出本特征中,包含的数据类型究竟有哪些
# 创建一个用于盛放数据类型的列表
test_type = list() for i in churn["TotalCharges"]: # 将数据类型 不重复的放入列表中
if type(i) not in test_type:
test_type.append(type(i))
print(test_type) """
[<class 'float'>, <class 'int'>, <class 'str'>]
"""
2 查看除 float 和 int 之外的类型的数据有哪些
# 创建用于盛放数据的列表
str_values= list() for i in churn["TotalCharges"]:
if type(i) != float and type(i) != int:
# 将既不是 float 也不是 int 的数据加到列表
str_values.append(i) print(str_values) """
[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']
"""
此时得到:非数值型数据均为空格。
3 将数据统一为 float 类型
# 空值替换所有空格
churn['TotalCharges'] = churn["TotalCharges"].replace(" ",np.nan)
# 去掉含有空值的样本
churn = churn[churn["TotalCharges"].notnull()]
# 将 TotalCharges 转换成 float类型
churn['TotalCharges'] = churn['TotalCharges'].astype(float)
此时

大功告成!
遍历的方法,相对来说效率略低,Pandas 应该有什么方法,更加直接吧
纯野生思路,找到更好的办法再更新~
数据预处理 | 使用 Pandas 统一同一特征中不同的数据类型的更多相关文章
- 机器学习之数据预处理,Pandas读取excel数据
Python读写excel的工具库很多,比如最耳熟能详的xlrd.xlwt,xlutils,openpyxl等.其中xlrd和xlwt库通常配合使用,一个用于读,一个用于写excel.xlutils结 ...
- 数据预处理 | 使用 pandas.to_datetime 处理时间类型的数据
数据中包含日期.时间类型的数据可以通过 pandas 的 to_datetime 转换成 datetime 类型,方便提取各种时间信息 1 将 object 类型数据转成 datetime64 1&g ...
- 数据预处理 | 使用 Pandas 进行数值型数据的 标准化 归一化 离散化 二值化
1 标准化 & 归一化 导包和数据 import numpy as np from sklearn import preprocessing data = np.loadtxt('data.t ...
- sklearn中的数据预处理和特征工程
小伙伴们大家好~o( ̄▽ ̄)ブ,沉寂了这么久我又出来啦,这次先不翻译优质的文章了,这次我们回到Python中的机器学习,看一下Sklearn中的数据预处理和特征工程,老规矩还是先强调一下我的开发环境是 ...
- 机器学习实战基础(十三):sklearn中的数据预处理和特征工程(六)特征选择 feature_selection 简介
当数据预处理完成后,我们就要开始进行特征工程了. 在做特征选择之前,有三件非常重要的事:跟数据提供者开会!跟数据提供者开会!跟数据提供者开会!一定要抓住给你提供数据的人,尤其是理解业务和数据含义的人, ...
- 机器学习实战基础(十):sklearn中的数据预处理和特征工程(三) 数据预处理 Preprocessing & Impute 之 缺失值
缺失值 机器学习和数据挖掘中所使用的数据,永远不可能是完美的.很多特征,对于分析和建模来说意义非凡,但对于实际收集数据的人却不是如此,因此数据挖掘之中,常常会有重要的字段缺失值很多,但又不能舍弃字段的 ...
- 机器学习实战基础(九):sklearn中的数据预处理和特征工程(二) 数据预处理 Preprocessing & Impute 之 数据无量纲化
1 数据无量纲化 在机器学习算法实践中,我们往往有着将不同规格的数据转换到同一规格,或不同分布的数据转换到某个特定分布的需求,这种需求统称为将数据“无量纲化”.譬如梯度和矩阵为核心的算法中,譬如逻辑回 ...
- 机器学习实战基础(十四):sklearn中的数据预处理和特征工程(七)特征选择 之 Filter过滤法(一) 方差过滤
Filter过滤法 过滤方法通常用作预处理步骤,特征选择完全独立于任何机器学习算法.它是根据各种统计检验中的分数以及相关性的各项指标来选择特征 1 方差过滤 1.1 VarianceThreshold ...
- 机器学习实战基础(十二):sklearn中的数据预处理和特征工程(五) 数据预处理 Preprocessing & Impute 之 处理分类特征:处理连续性特征 二值化与分段
处理连续性特征 二值化与分段 sklearn.preprocessing.Binarizer根据阈值将数据二值化(将特征值设置为0或1),用于处理连续型变量.大于阈值的值映射为1,而小于或等于阈值的值 ...
随机推荐
- UnsupportedClassVersionError : 不支持的类版本错误
UnsupportedClassVersionError : 不支持的类版本错误 listenerStart配置类的应用程序侦听器时出错 listenerStart Error configuring ...
- Apache Solr JMX服务 RCE 漏洞复现
Apache Solr JMX服务 RCE 漏洞复现 ps:Apache Solr8.2.0下载有点慢,需要的话评论加好友我私发你 0X00漏洞简介 该漏洞源于默认配置文件solr.in.sh中的EN ...
- android的APT技术
转载请标明出处:https:////www.cnblogs.com/tangZH/p/12343786.html, http://77blog ...
- Android 有关在ListView RecycleView 中使用EditText Checkbox的坑
这是一篇文字超多的博客,哈哈哈,废话自行过滤··· 遇到问题 在开发中我们常会在ListView , RecycleView 列表中添加EditText输入框,或者checkbox复选框. 复选框 ...
- 802.11 MAC基础
MAC(媒介访问控制层)位于各式物理层之上,控制数据的传输.它负责核心成帧操作以及与有线骨干网络之间的交互. 802.11采用载波监听多路访问/冲突避免(CSMA/CA)机制来控制对传输媒介的访问. ...
- 退役记——CCC2020&CCO2020
我叫吴佳诚,一个曾在福建师大附中就读的oier,2019年7月份我来到多伦多就读于Langstaff Secondary School 我的常用id有:Johnson_Wu,温词 竞赛经历: 2018 ...
- 【一起刷LeetCode】整数反转
前言&絮叨 别人都忙着参加年会晒奖品,我却忙着写代码.每逢年底都要安排几个紧急项目,我什么时候能摆脱这种宿命. 在忙也不能忘记刷LeetCode,毛毛向前冲!!! 题目描述 给出一个 32 位 ...
- windows服务踩的坑
最近写了一个windows服务 有一些bug最后终于解决了还是写点经验把. 第一点.版本问题,因为是小白,第一次写windows服务,选择的是.net4.6.1的目标框架,因为我的电脑是windows ...
- 对于搭建网站中出现“You don't have permission to access this resource.”错误提示的解决思路
我是用的是树莓派搭载了ubuntu系统 配置php+apache的网站环境,但在登陆网站进行网站初始化设置时出现错误提示,其大意是没有访问权限,上网搜索了一系列相关教程,都说明对apache2.con ...
- 数据结构(集合)学习之Collection和Iterator
集合 1.集合与数组 数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使 ...