一、导入数据
import pandas as pd
import numpy as np
from pandas import Series,DataFrame
import xlrd
df = DataFrame(pd.read_excel('datas/grades.xlsx'))
print(df)
Unnamed: 0 Unnamed: 1 Unnamed: 2 Unnamed: 3
0 蒋广佳 43.0 69.0 61.0
1 廖菲 80.0 64.0 62.0
2 沈秀玲 68.0 74.0 98.0
3 韦丹 48.0 53.0 64.0
4 张梦雅 72.0 73.0 96.0
5 赵雅欣 60.0 NaN 70.0
- 我们可以看见上面的数据是缺少标注的,列名缺少标注;并且有很多是空值,因此我们要对数据进行清洗,提高数据的质量。在这里数据清洗有四个要点简称“完全合一”
- 完整性:单条数据是否完整,统计的字段是否完善。
- 全面性:观察某一列的全部数值,选中一列,我们可以看到最大值,最小值,平均值。我们可以通过常识判断数据是否合理,比如:数据定义、单位标识、数值本身。
- 合法性:数据的类型、内容、大小的合法性。比如数据中存在非ASCII字符,性别存在未知,总分超过100等。
- 唯一性:数据是否存在重复记录,由于数据来源于不同的渠道,重复的情况是非常常见的。行数据、列数据都需要是唯一的。- 事实上数据清洗的标准有差不多七八条,有兴趣的可以了解一下,这里归纳为“完全合一”四条,按照这四条基本上可以解决数据清洗中的大部分问题,使得数据标准、干净、连续。
二、开始数据清洗
1、完整性
problem 1:空行
df.dropna(how