11 | 数据科学家80%时间都花费在了这些清洗任务上?

数据质量的准则

完全合一

1. 完整性:单条数据是否存在空值,统计的字段是否完善。

2. 全面性:观察某一列的全部数值,比如在 Excel 表中,我们选中一列,可以看到该列的平均值、最大值、最小值。我们可以通过常识来判断该列是否有问题,比如:数据定义、单位标识、数值本身。

3. 合法性:数据的类型、内容、大小的合法性。比如数据中存在非 ASCII 字符,性别存在了未知,年龄超过了 150 岁等。

4. 唯一性:数据是否存在重复记录,因为数据通常来自不同渠道的汇总,重复的情况是常见的。行数据、列数据都需要是唯一的,比如一个人不能重复记录多次,且一个人的体重也不能在列指标中重复记录多次。


数据清洗尝试

import pandas as pd

from pandas import Series, DataFrame

f = DataFrame(pd.read_excel(r'Desktop\food.xlsx'))

f['food'] = f['food'].str.title()      #food列首字母大写

ounces_maxf = f['ounces'].value_counts().index[0]  #用出现频次最高的值代替空值

f['ounces'].fillna(ounces_maxf, inplace=True)

'''for i in range(len(f['ounces'])):

    if f['ounces'][i]<0:

        f['ounces'][i]=f['ounces'].mean()  #用平均值代替 '''

f['ounces'].replace(f[f['ounces']<0]['ounces'],f['ounces'].mean(),inplace=True)  #用平均值代替。f[f['ounces']<0]['ounces'] 小于0的数据,b小于0的一行

'''f['food'] = f['food'].drop_duplicates()    # 去除重复行

f.dropna(axis=0, how='any', inplace=True)'''

f = f.drop_duplicates(subset='food', keep='first')  # 去除重复行

print (f)

food文件

7i5b

你可能感兴趣的:(11 | 数据科学家80%时间都花费在了这些清洗任务上?)