头歌:电商精准营销—数据探索与可视化

第1关:单变量特征分布

#!/usr/bin/python
#coding:utf8
import warnings
warnings.filterwarnings("ignore") 
import pandas as pd
import os
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
import seaborn as sns
sns.set_style('darkgrid')
font=fm.FontProperties(fname=r'./data/simhei.ttf')  #自定义字体集

def explore_user(User_data):
    '''
    User_data数据类型请参考左边数据背景中用户数据,具体数据内容可以点击右上角文件目录,
    选择data文件夹,查看User.csv文件。
    请完善用户信息中的性别('sex')、年龄('age')和用户等级('user_lv_cd')的饼图分布,
    这里需要使用上面自定义字体集,图标题使用12号字,其他9号字;图形效果如左侧编程要求中的1所示。
    使用1行3列的子图展示,子图标题分别为“用户性别分布”,“用户年龄分布”,"用户等级分布";饼图颜色使用默认颜色。
    '''
    fig = plt.figure(figsize=(27, 9))
    ##########  Begin ##########
    vars=['sex','age','user_lv_cd'] #选出要展示的变量名
    vars_name=['用户性别分布','用户年龄分布','用户等级分布'] #每个变量对应的图的标题
    for i in range(3):
        plt.subplot(1, 3, i+1)
        plt.pie(User_data[vars[i]].value_counts(), labels=User_data[vars[i]].value_counts().index, autopct='%.1f%%',textprops={'FontProperties':font, 'fontsize':9})
        plt.title(vars_name[i],FontProperties=font,fontsize=12)
    ##########  End   ########## 
    plt.show()
    plt.savefig('./task1/task1_user.png')
    plt.close(fig)
def explore_comment(comment):
    '''
    comment数据集是数据集Comment.csv的数据,数据中的商品评论数量('comment_num'),'comment_num'包含0,1,2,3,4等五种类型;
    类型的含义:0表示无评论,1表示有1条评论, 2表示有2-10条评论,3表示有11-50条评论,4表示大于50条评论;
    请完善商品评论中的商品评论数量('comment_num')的分布情况,需要使用自定义字体集,图标题使用12号字,其他9号字。
    '''
    fig=plt.figure(figsize=(8,6))
    ##########  Begin ##########
    plt.pie(comment['comment_num'].value_counts(), labels=comment['comment_num'].value_counts().index, autopct='%.1f%%',textprops={'FontProperties':font, 'fontsize':9})
    plt.title('商品评论分布',FontProperties=font,fontsize=12)
    plt.show()
    ##########  End   ##########
    plt.show() 
    plt.savefig('./task1/task1_comment.png')
    plt.close(fig)
def explore_action(action_data):
    '''
    action_data是数据集Action.csv的数据,是行为数据,可以参考左边的行为数据字段解释;
    数据中的‘type’字段包含1,2,3,4,5,6六类数值型数据,(值=1:浏览(指浏览商品详情页);
    值=2:加入购物车;值=3:购物车删除;值=4:下单;值=5:关注;值=6:点击)
    请完使用seaborn.distplot查看客户这六类行为次数的分布情况,使用自定义字体集,
    子图标题字体大小12,其余字体大小9。在画图的过程中需要对统计每个user_id(客户)的行为次数,
    可以使用groupby函数,然后再展示客户行为次数分布
    '''
    figure = plt.figure(figsize=(27, 9))
    ##########  Begin ##########
    action_do=['浏览','加入购物车','购物车删除','下单','关注','点击']
    for i in range(1, 7, 1):
        plt.subplot(2, 3, i)
        sns.distplot(action_data[action_data['type'] == i].groupby('user_id')['sku_id'].count())
        plt.title('%s分布' %action_do[i-1],FontProperties=font,fontsize=12)
        plt.xlabel('客户%s的次数' %action_do[i-1],FontProperties=font,fontsize=9)
    ##########  End   ########## 
    plt.show()
    plt.savefig('./task1/task1_action.png')
    
    

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值