zoukankan      html  css  js  c++  java
  • 淘宝美妆双十一数据清洗(上)

    淘宝美妆双十一数据清洗

    01 数据初步了解

    # 导入模块
    import pandas as pd
    import numpy as np
    df = pd.read_csv('双十一淘宝美妆数据.csv')
    df.head() #查看数居前五行
    

    image-20201019201913820

    # 查看数据特征
    df.info()
    

    image-20201019202018231

    df.shape #查看数据量
    

    (27598, 7)

    df.describe() #查看各数字类型特征的一些统计量
    

    image-20201019202133046

    数据有27598条,每条数据有7个特征,都是非空的

    02 数据清洗

    2.1 重复值处理

    data = df.drop_duplicates(inplace = False)##去重
    data.reset_index(inplace = True,drop = True)##重置行索引
    #查看数据量
    data.shape
    

    2.2 缺失值处理

    通过上面观察数据发现sale_count,comment_count 存在缺失值,先观察存在缺失值的行的基本情况

    data.loc[data['sale_count'].isnull()].head()
    

    image-20201019202946113

    # 查看 comment_count 列的空值情况  后五条数据
    data.loc[data['comment_count'].isnull()].tail()
    

    image-20201019203036919

    存在的缺失值很可能意味着售出的数量为0或者评论的数量为0,所以我们用0来填补缺失值

    # 填充缺失值
    data=data.fillna(0)
    # 查看是否还有空值
    data.isnull().any()
    

    image-20201020082058396

    2.3 数据挖掘寻找新的特征

    #使用jieba包对title进行分词,进一步了解每一个商品的特征
    import jieba 
    # 创建一个列表
    subtitle=[]
    #遍历数据集中的title列
    for each in data['title']:
        # 直接返回一个列表
        k=jieba.lcut_for_search(each) ##搜索引擎模式
        subtitle.append(k)
        # 添加一个新列
    data['subtitle']=subtitle
    # 查看title 和subtitle 的前五条数据
    data[['title','subtitle']].head()
    

    image-20201020082734018

    # 给商品添加分类
    sub_type = []   #子类别
    main_type = []  #主类别
    basic_data = """护肤品	乳液类	乳液	美白乳	润肤乳	凝乳	柔肤液	亮肤乳	菁华乳	修护乳
    护肤品	眼部护理类	眼霜	眼部	眼膜					
    护肤品	面膜类	面膜													
    护肤品	清洁类	洗面	洁面	清洁	卸妆	洁颜	洗颜	去角质	磨砂						
    护肤品	化妆水	化妆水	爽肤水	柔肤水	补水露	凝露	柔肤液	精粹水	亮肤水	润肤水	保湿水	菁华水	保湿喷雾	舒缓喷雾
    护肤品	面霜类	面霜	日霜	晚霜	柔肤霜	滋润霜	保湿霜	凝霜	日间霜	晚间霜	乳霜	修护霜	亮肤霜	底霜	菁华霜
    护肤品	精华类	精华液	精华水	精华露	精华素	精华										
    护肤品	防晒类	防晒
    护肤品	补水类	补水													
    化妆品	口红类	唇釉	口红	唇彩	唇膏											
    化妆品	底妆类	散粉	蜜粉	粉底液	定妆粉 	气垫	粉饼	BB	CC	遮瑕	粉霜	粉底膏	粉底霜		
    化妆品	眼部彩妆	眉粉	染眉膏	眼线	眼影	睫毛膏	眉笔										
    化妆品	修容类	鼻影	修容粉	高光	腮红""" 
    ##主观的分类,不在这些类别里的并入其他类。第一列是大类,第二列是小类,后面都是关键词
    
    # 创建一个字典
    dcatg={}
    catg=basic_data.split('
    ')
    for i in catg:
        main_cat=i.strip().split('	')[0]
        sub_cat=i.strip().split('	')[1]
        o_cat=i.strip().split('	')[2:len(catg)]
        for j in o_cat:
            dcatg[j]=(main_cat,sub_cat)
    dcatg
    ##分类字典
    

    image-20201020091145178

    给出各个关键词的分类类别

    sub_type = [] #主类
    main_type = [] #次类
    for i in range(len(data)):
        exist = False
        for j in data['subtitle'][i]:
            if j in dcatg:
                sub_type.append(dcatg[j][1])
                main_type.append(dcatg[j][0])
                exist = True
                break 
        if not exist :
            sub_type.append('其他')
            main_type.append('其他') 
    data['sub_type']=sub_type
    data['main_type']=main_type
    data.loc[data['sub_type'] == '其他'].count() ##查看分类为其他的有多少商品
    

    image-20201020091242072

    由title新生成两列类别

    对是否是男性专用进行分析并新增一列

    sex=[]
    for i in range(len(data)):
        if '男士' in data['subtitle'][i] :
            sex.append('是')
        elif '男生' in data['subtitle'][i] :
            sex.append('是')
        elif '男' in data['subtitle'][i] and '女' not in data['subtitle'][i]  and '斩男' not in data['subtitle'][i]:
            sex.append('是')
        else :
            sex.append('否')
    data['是否男士专用']=sex 
    data.loc[data['是否男士专用'] == '是'].head()
    

    image-20201020093024069

    data['是否男士专用'].value_counts()
    

    image-20201020092925960

    对每个产品新增销售额这一列

    data['销售额'] = data.price * data.sale_count
    data.head()
    

    image-20201020093150184

  • 相关阅读:
    移动互联网全新体验Andoid
    《XNA高级编程:Xbox 360和Windows》51
    《XNA高级编程:Xbox 360和Windows》47
    让FCKeditor支持多用户环境(asp.net)
    《XNA高级编程:Xbox 360和Windows》45
    《XNA高级编程:Xbox 360和Windows》46
    《XNA高级编程:Xbox 360和Windows》44
    《XNA高级编程:Xbox 360和Windows》43
    hdu 4314 Save the dwarfs 夜
    poj 3150 Cellular Automaton 夜
  • 原文地址:https://www.cnblogs.com/James-221/p/13844706.html
Copyright © 2011-2022 走看看