python实现数据分析与建模

  

  

首先我们做数据分析,想要得出最科学,最真实的结论,必须要有好的数据。而实际上我们一般面对的的都是复杂,多变的数据,所以必须要有强大的数据处理能力,接下来,我从我们面临的最真实的情况,一步一步教会大家怎么做。

  

        (1)读取模块   熊猫作为pd导入   进口numpy np   (2)读取表格的全部数据   df=pd.read_csv (" . data/HR.csv”)   (3)读取你所需要的数据   sl_s=df (“sactisfaction_level”)   
     

<强>

  

2.1。异常值(空值)处理

  

2.1.1删除   

首先,第一步是对空值的处理。

  

有两种,一种直接删除,另一种指代。

  

如果数据多,想简单一点,就直接删除,方法都很简单。

        首先,建立一个DataFrame表   1 .为了确定是否含有空值:   df.isnull() #如果含有空值,返回现实   2 .删除   df.dropna() #去掉含空值的行   如果想要删除某一个属性含空值的行就加参入子集数   df.dropna(子集=[B]) #去掉B属性含空值的行   判断是否有重复的数据:   df.duplicated ([A]) #一个属性中重复的数据返回现实   删除一个属性重复的行   df.drop_duplicates ([A])   df.drop_duplicates ([A],保持=False) #删除一个属性全部重复的行   df.drop_duplicates ([A],保持=第一)#删除一个属性全部重复的行,保留第一个   df.drop_duplicates ([A],保持=去年)#删除一个属性全部重复的行,保留最后一个      

2.1.2指代   

有些数据非常重要,不能删除,那我们就选择指代,也就是替换

        #含空值的数据被替换为“b *”   b df.fillna (“*”)   # E属性中的含空值的数据被替换成该属性的平均值   df.fillna (df [E] .mean ())   #插值替换   如果含空值的元素为最后一个,那么空值的数据替换成和上一个数据一样   如何含空值的元素为中间,那么空值的数据被(上+下)/2代替   df [E] .interpolate ()   # 3次样条插值顺序参数就是几次样条插值   df [E] .interpolate(方法=把酢?订单=3)   
     

*函数
  

        (4)异常值分析(含有就返回真的)——isnull ()   sl_s.isnull ()   主要表示没有空值   (5)提取异常值的该属性信息   sl_s [sl_s.isnull ())   (6)提取异常值的表格全部信息   df (df (“sactisfaction_level”) .isnull ())   (7)丢弃异常值——dropna ()   sl_s=sl_s.dropna ()   注:删除为空的异常值   可以利用,()把异常数据赋空,然后利用dropna()删除   (8)填充异常值——fillna ()   sl_s=sl_s.fillna ()   (9)平均值——意思是()   sl_s.mean ()   (10)标准差——性病()   Sl_s.std ()   (11)最大值——max ()   sl_s.max ()   (12)最小值- min ()   sl_s.min ()   (13)中位数——中值()   sl_s.median ()   (14)下四分位数——分位数(q=0.25)   sl_s.quantile (q=0.25)   (15)上四分位数——分位数(q=0.75)   sl_s.quantile (q=0.75)   (16)偏度——斜()   sl_s.skew ()   分析:小于0是负偏均值偏小,大部分数是比他的均值大的   大于0稍微有些振偏   远大于0,是极度振偏,均值要比他的大多数值大好多。   (17)峰度——库尔特()   sl_s.kurt ()   分析:& lt; 0相比于正态分布,他的趋势相对平缓   远大于0说明他的形变是非常大的,所以是不靠谱的   (18)获得离散化的分布(numpy模块),柱状图()   np.histogram (sl_s。值,垃圾箱=np.arange (0.0, 1.1, 0.1))   结果分析:   (195,1214,532974,…)   (0.0,0.1,0.2,0.3,0.4…)   代表0.0 - -0.1之间有195个数,0.1 - -0.2之间有1214个数,以此类推   分布间隔为0.1      


  

        3.1。提取大于1的值   le_s [le_s> 1]   3.2去除大于1的异常值   le_s [le_s<=1)   3.3提取正常值(利用四分位数)   3.3.1下四分位   q_low=le_s。分位数(q=0.25)   3.3.2上四分位   q_high=le_s.quantile (q=0.75)   3.3.3四分位间距   q_interval=q_high-q_low   3.3.4定义k的值   K=1.5 ~ 3之间   如果k=1.5,删除的异常值是中度异常   如果k=3.0,删除的异常值是极度异常   3.3.5筛选   le_s=le_s [le_s q_low-k * q_interval]   3.4数据的个数——len ()   len (le_s)   3.5离散分布直方图(numpy模块)   np.histogram (le_s.values垃圾箱=np.arange (0.0, 1.1, 0.1))   3.6回顾数据的平均值,标准差,中位数,最大值,最小值,偏度,峰度,确定数据的正常。

python实现数据分析与建模