数据处理的过程:
数据收集、数据录入、数据清洗、数据处理、数据集成、数据管理、数据分析、提供数据服务
数据收集:通过注册登记、问卷、面试采访获取数据,或者科学家勘测、测量的数据以及实验文档记录,公司报表等都是
获取数据的方式.
数据清洗: 数据清洗可以简单分为这几个过程:解析、修正、标准化,合并
解析:将无结构的文本转化为字段和值的有结构的数据
修正:将无效的Unknown或缺失值按照实际情况来修改为合适的值
缺失值处理规则:
1.用变量的模板替换缺失的值。
2.用变量的平均值/中位数替换缺失值
3.根据记录的相似度替换缺失值,或根据好值的比值替换缺失值。
4.删除有太多缺失值的记录
标准化:将一些固定的数据,如日期,国家,地区等统一为相同的值
合并:将多个字段合并为一个最终的数据
模拟数据填充练习,通过用Pandas库读取到文件数据以后,对数据进行处理
首先,创建student.csv文件
然后用pandas读取并输出
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_csv('student.csv')
print(df.head(50)) #head()默认显示5条
输出结果如图:
这时候我们会发现,sex和age的部分值为空值,我们把性别列的空值填充为男,年龄列的空值填充为18
df1=df.fillna(value={'sex':'女','age':18}) #通过字典,填充
接着用matplotlib箱型图来显示,上面已经导入了库,直接使用
df1.boxplot(flierprops={'marker':'o','markerfacecolor':'g'}) #marker代表样式,facecolor代表颜色
plt.show() #显示图形
我们会发现有一些极限值200在最上方,
下面我们将年龄大于140的全部替换为中位数,使用to_replace方法:
df2=df1.replace(to_replace=df[df['age']>140],value={'age':df['age'].median()}) #median中位数
df2.boxplot(flierprops={'marker':'o','markerfacecolor':'g'})