目录
1.说明
- 该学习笔记仅供个人学习使用,不代表任何官方指导或意见。
- 如侵权,请练习删除。
- 有需要其他资料或有其他问题可私信或者加qq2356081476,这不是我的义务但也欢迎各位朋友与我讨论相关问题,共同进步。
- 错字,语法,排版等问题请见谅。
2.数据预处理
2.1.数据初步诊断与探索
(1)读取数据
- 用pandas库读取csv文件challenge.csv
- 提取该数据集的字段名称,存为cols
- 提取该数据集的字段和样本数量,分别存为col_num,sam_num
- 获取数据集的前五行,将最后的DataFrame存为five_data
import pandas as pd
data = pd.read_csv("chanllenge.csv") #读取文件
cols = list(data.columns) #获取字段名称(列名)
col_num = len(cols) #获取字段数量(列数)
sam_num = data.shape[0] #获取样本数量
five_data = data.head() #获取样本前五行
讲一下sam_num = data.shape[0]
和five_data = data.head()
这两句:
- DataFrame.shape返回DataFrame对象(此例中的data)的形状的一个元组,比如说(2,3)就表示DataFrame对象有2行3列。这里再加一个[0]表示索引第一个的值,就是行的值,也就是我们需要的“样本数量”了。
- DataFrame.head()函数,这里面其实有一个参数n,默认等于5就不写了,获取样本前五行。如果
five_data = data.head(n = 10)
就是获取样本前十行。
(2)正态检验
- 使用numpy库生成服从均匀分布的一维数据集,样本容量100
- 使用scipy库中的stats模块,对生成的数据进行正态检验,将检验的结果存为model
- 提示:可以使用kstest()函数实现此功能。
import numpy as np
from scipy.stats import stats
test_data = np.random.random(size = 100)
model = stats.kstest(test_data,'norm') #正太检验
讲一下scipy
库、kstest()
函数和np.random
模块:
- scipy库,是一个高级科学计算库,基于numpy,增加的功能包括数值积分、最优化、统计和一些专用函数。
- kstest就是scipyku下stats模块(统计相关模块)的一个函数,用来检测样本是否服从某种分布。如
model = stats.kstest(test_data,'norm')
中kstest这里有两个参数,一个就是我们的数据(样本),另外一个是我们要看数据是否符合的分布。norm表示标准正态分布,还有其他不作介绍了。kstest还有其他参数也不多做介绍。 - numpy库random模块下的random()函数,生成一个ndarray对象,类似于列表或者说矩阵,参数size=100返回一个ndarray数组,长度为100,若以列表的形式给出参数size如size = [100,20]则返回的ndarray的形状(shape)属性就是(100,20)表示有100行,20列
2.2.缺失值处理和离群值检测
(1)缺失值处理
- 已使用pandas生成series对象example_data
- 使用isnull()函数确定example_data是否含有缺失值,将结果存为boolean_array
- 使用fillna()函数使用字符串missing替换缺失值,将替换后的series对象存为呢哇_data
import pandas as pd
example_data = pd.Series([1,2,3,np.nan,4])
boolean_array = pd.isnull(example_data)
new_data = example_data.fillna('missing')
(2)均值填充
- 已给出DataFrame对象data
- 用缺失值均值填充的方法填充data中的缺失数据,结果存为new_data
new_data = data.fillna(data.mean())
2.3.常用的数据转换方法
(1)Min-Max标准化
- 现已使用numpy读取数据集birthrate.csv
- 获取该数据集第二列birth_rates的最大值和最小值
- 根据Min-Max标准化的数学公式,将特征birth_rates映射到区间[0,1]之中,并将结果存为minmax_scaling_data
Min-Max标准化的数学公式:
f i ′ = f i − f m i n f m a x − f m i n f'_i=\frac{f_i - f_{min}}{f_{max}-f_{min}} fi′=