首先解决:数据中的重复值,异常值,空值,以及多余的空格和大小写错误的问题
数据表中的重复值
duplicated()查找并显示数据表中的重复值
说明:1、当两个条目间所有列的内容都相等时才会判断为重复(如条目1和4)2、duplicated支持从前往后(first)和从后往前(last)两种查找模式,默认是first,将后出现的相同条目判断为重复值,显示为True。
drop_duplicates()删除数据表中的重复值,返回只包含唯一值的数据表,其他与duplicated一样。
数据表中的空值
isnull()如果是空值显示True,notnull()如果是空值显示False
loandata[‘loan_amnt’].isnull().value_counts()获得空值数据量
空值的处理方法:1、fillna()填充;2、dropna删除
对某些数值进行格式转换astype()
数据间的空格
去除空格的方法:
loandata[‘term’]=loandata[‘term’].map(str.strip)去除数据两边的空格
loandata[‘term’]=loandata[‘term’].map(str.lstrip)去除数据左边的空格
loandata[‘term’]=loandata[‘term’].map(str.rstrip)去除数据右边的空格、
大小写转换
三种方法:
loandata[‘term’]=loandata[‘term’].map(str.upper)转换成大写
loandata[‘term’]=loandata[‘term’].map(str.lower)转换成小写
loandata[‘term’]=loandata[‘term’].map(str.title)转换成首字母大写
数据中的极端值和异常值
describe()统计计数、均值、标准差、最大最小值、百分位
异常数据替换
replace()
更改数据格式
astype()
数据分组
cut()
bins = [0, 5, 10, 15, 20]
group_names = [‘A’, ‘B’, ‘C’, ‘D’]
loandata[‘categories’] = pd.cut(loandata[‘open_acc’], bins, labels=group_names)
数据分列
split()
grade_split = pd.DataFrame((x.split(‘-‘) for x in loandata.grade),index=loandata.index,columns=[‘grade’,’sub_grade’])
merge()匹配
loandata=pd.merge(loandata,grade_split,right_index=True, left_index=True)
匹配回原数据表