数据分析入门——数据预处理2

对于类型特征重复的判断

sim_dis=pf.Dataframe([],index=['counts','amounts'],columns=['counts','amounts']
for i in ['counts','amounts']:
 for j in ['counts','amounts']:
  sim_dis.loc[i,j]=data[i].equals(data[j])
  print( sim_dis)

3、检测和处理缺失值
可以用上面学习的describe
也可以利用isnull或notnull确定是否存在缺失值

data.isnull().sum()

4、处理缺失值
(1)删除法
dropna函数
在这里插入图片描述2、替换法
是用一个特定的值替换缺失值
通常用均值、中位数、众数确认趋势
在这里插入图片描述
3、插值法
适合缺失值占比小时应用
(1)线性插值(2)多项式插值(3)样条插值

x=np.array([1,2,3,6,7])
y=np.array([3,5,6,9,13])
from scipy.interpolate import interpld
model=interpld(x,y,kind='linear')
#使用线性插值
>>>model([4,5])
>array([7,8])



from scipy.interpolate import lagrange
f_lag=lagrange(x,y)
f_lag([4,5])
#拉格朗日插值
from scipy.interpolate import BSpline
y_bs=BSpline(x,y,k=1)
>>>y_bs([4,5])
>array([5.333333,5.666667])
>#样条插值

4、异常值
在这里插入图片描述
只适用于符合正态分布的数据,其他分布则无效

u=data['counts'].mean()
o=data['counts'].std()
data['counts'].apply(lambda x:x>u+3*o orx<u-3*o).sum()
#显示false代表都不是异常值

(2)箱象图绘制

import matplotlib.pyplot as plt
plt.boxplot(data['counts'])
plt.show()
#提取异常值
p['fliers'][0].get_ydata()
#0表示第一个箱子图

标准化数据

在这里插入图片描述

def minmaxscale(data):
 return(data-data.min())/(data.max()-data.min())

在这里插入图片描述2、标准差标准化
在这里插入图片描述

def standscale(data):
 return(data-data.mean())/data.std()

3、小数定标标准化
在这里插入图片描述

def decimalscale(data):
 return data/10**(np.ceil(np.log10(data.abs().max())))

转换数据

1、哑变量处理类型数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
离散化连续型数据
1、等宽法

pd.cut(data['amounts'],bin=5).value_counts()

在这里插入图片描述
2、等频法

def samefreq(data,k):
  w=data.quantile(np.range(0,1+1/k,1/k))
  return pd.cut(data,w)

3、聚类分析法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值