Python数据可视化

  • Pyecharts(四) —— 黑色星期五用户画像
    • 一、背景
    • 二、数据可视化
      • 2.1 年龄/性别的各自用户占比
      • 2.2 婚姻状况/城市类别的占比
      • 2.3 当前城市停留时间&性别的用户对应的平均消费
      • 2.4 箱形图-购买力(性别/年龄)

Pyecharts(四) —— 黑色星期五用户画像

大家可以关注知乎或微信公众号的share16,我们也会同步更新此文章。

一、背景

   该数据集包括了五十多万条黑色星期五购物消费记录,包括用户年龄、性别、婚姻状况、职业、购买金额等信息。
   点此下载数据集

二、数据可视化

2.1 年龄/性别的各自用户占比

import pandas as pd
from pyecharts.charts import *
import pyecharts.options as opts
df = pd.read_csv('/XXXXXX/黑色星期五.csv')''' 性别:用户占比(a与a0,结果一致) '''
a = df.groupby(['Gender']).agg({'User_ID':pd.Series.nunique})
a0 = df[['User_ID','Gender']].drop_duplicates().groupby('Gender').count()
data_a = list(list(a.to_dict().values())[0].items())''' 年龄:用户占比 '''
b = df.groupby(['Age']).agg({'User_ID':pd.Series.nunique})
data_b = list(list(b.to_dict().values())[0].items())c = df.groupby(['Gender','Age']).agg({'User_ID':pd.Series.nunique})

开始画图:

p1 = Pie()
p1.add('',data_a,radius=['20%','30%'],center=['10%','50%'],label_opts=opts.LabelOpts(position='inside',formatter='{b}:{d}%'))
p1.set_global_opts(title_opts=opts.TitleOpts('用户占比-性别',pos_left='3%'),legend_opts=opts.LegendOpts(is_show=False))p2 = Pie()
p2.add('',data_b,radius=['20%','30%'],center=['30%','50%'],label_opts=opts.LabelOpts(is_show=False,formatter='{d}%'))
p2.set_global_opts(title_opts=opts.TitleOpts('用户占比-年龄',pos_left='23%'),legend_opts=opts.LegendOpts(is_show=False))''' 在折线图、柱状图、K线图中,{d}表示‘无’ '''
b = Bar()
b.add_xaxis(list(c.loc['F',:].index))
b.add_yaxis('F',list(c.loc['F',:].User_ID),stack='s1',label_opts=opts.LabelOpts(position='inside'))
b.add_yaxis('M',list(c.loc['M',:].User_ID),stack='s1',label_opts=opts.LabelOpts(position='inside'))
b.set_global_opts(title_opts=opts.TitleOpts('用户占比-性别&年龄',pos_left='60%'),legend_opts=opts.LegendOpts(pos_right='right'))''' 水平多图 '''
grid = Grid()
grid.add(b,grid_opts=opts.GridOpts(pos_left='45%'))
grid.add(p1,grid_opts=opts.GridOpts(pos_left='10%'))
grid.add(p2,grid_opts=opts.GridOpts(pos_left='30%'))
grid.render_notebook()''' 垂直多图 '''
#page = Page()
#page.add(p1,p2,b)
#page.render_notebook()

2.2 婚姻状况/城市类别的占比

''' 未婚/已婚 '''
a = df.groupby(['Marital_Status']).agg({'User_ID':pd.Series.nunique})
a.index = ['未婚','已婚']
data_a = list(list(a.to_dict().values())[0].items())''' 城市类别 '''
b = df.groupby(['City_Category']).agg({'User_ID':pd.Series.nunique})
c = df.groupby('City_Category').Purchase.sum()
data_b = list(list(b.to_dict().values())[0].items())
data_c = list(c.to_dict().items())

画图:

p1 = Pie()
p1.add('',data_a,radius=['20%','30%'],center=['20%','50%'],label_opts=opts.LabelOpts(formatter='{b}:{d}%'))
p1.set_global_opts(title_opts=opts.TitleOpts('用户占比-婚姻状况'),legend_opts=opts.LegendOpts(type_='plain',pos_top='10%',pos_left='left'))p2 = Pie()
p2.add('',data_b,radius=['20%','30%'],center=['50%','50%'],label_opts=opts.LabelOpts(formatter='{b}:{d}%'))
p2.set_global_opts(title_opts=opts.TitleOpts('用户占比-城市类别',pos_right='45%'),legend_opts=opts.LegendOpts(pos_top='10%',pos_right='right'))p3 = Pie()
p3.add('',data_c,radius=['20%','30%'],center=['80%','50%'],label_opts=opts.LabelOpts(formatter='{b}:{c}$'))
p3.set_global_opts(title_opts=opts.TitleOpts('消费占比-城市类别',pos_right='right'),legend_opts=opts.LegendOpts(is_show=False))''' 水平多图 '''
grid = Grid()
grid.add(p1,grid_opts=opts.GridOpts(pos_left='10%'))
grid.add(p2,grid_opts=opts.GridOpts(pos_left='30%'))
grid.add(p3,grid_opts=opts.GridOpts(pos_left='70%'))
grid.render_notebook()

2.3 当前城市停留时间&性别的用户对应的平均消费

d = df.groupby(['Gender','Stay_In_Current_City_Years']).Purchase.mean().round(0)b = Bar()
b.add_xaxis(list(d.loc['F',:].index))
b.add_yaxis('F',list(d.loc['F',:]),color='#FFCF43')
b.add_yaxis('M',list(d.loc['M',:]),color='#6CBEFD')
b.set_global_opts(xaxis_opts=opts.AxisOpts(name='当前城市\n停留时间'),yaxis_opts=opts.AxisOpts(name='平均消费',min_=8600))
b.render_notebook()

2.4 箱形图-购买力(性别/年龄)

df = pd.read_csv('/Users/ye/Desktop/黑色星期五.csv')
f = df.groupby(['Gender','Age','User_ID']).Purchase.mean().round(0).reset_index()
data_x = f.Age.unique().tolist()
data_f = [list(f[(f.Gender=='F') & (f.Age==i)].Purchase) for i in data_x]
data_m = [list(f[(f.Gender=='M') & (f.Age==i)].Purchase) for i in data_x]bp = Boxplot()
bp.add_xaxis(data_x)
''' bp.prepare_data:依次计算箱子的最小值、Q1、中位数、Q3、最大值opts.ItemStyleOpts.border_color的颜色与图例的颜色是一致的 '''
bp.add_yaxis('F',bp.prepare_data(data_f),itemstyle_opts=opts.ItemStyleOpts(color='#EEFDD3',border_color='#56C71C'))
bp.add_yaxis('M',bp.prepare_data(data_m),itemstyle_opts=opts.ItemStyleOpts(color='#FEF8D8',border_color='#D6A12D'))
bp.set_global_opts(legend_opts=opts.LegendOpts(legend_icon='circle'))
bp.render_notebook()

谢谢大家

Pyecharts(四) —— 黑色星期五用户画像相关推荐

  1. 大数据项目(四)————用户画像

    原文地址:https://blog.csdn.net/Jorocco/article/details/81428996 1.用户画像概述 用来勾画用户(用户背景.特征.性格标签.行为场景等)和联系用户 ...

  2. 看完秒懂大数据用户画像!

    来自:网络 什么是用户画像? 用户画像(User Profile),作为大数据的根基,它完美地抽象出一个用户的信息全貌,为进一步精准.快速地分析用户行为习惯.消费习惯等重要信息,提供了足够的数据基础, ...

  3. 金融行业如何用大数据构建精准用户画像?

    原文地址:https://www.jianshu.com/p/6e0a0ca5948e 1. 什么是用户画像? 2. 用户画像的四阶段 用户画像的焦点工作就是为用户打"标签",而一 ...

  4. python客户画像_Python数据分析学习笔记05:用户画像

    Python数据分析学习笔记05:用户画像 一.用户画像 用户画像是指根据用户的属性.用户偏好.生活习惯.用户行为等信息而抽象出来的标签化用户模型.通俗说就是给用户打标签,而标签是通过对用户信息分析而 ...

  5. 用户画像原理、技术选型及架构实现

    这篇文章在宏观上很好地描述了用户画像的主要内容.(文章内的图片来源于不同帖子,侵删) 一. 什么是用户画像 用户画像是指根据用户的属性.偏好.生活习惯.行为等信息,抽象出来的标签化用户模型.通俗说就是 ...

  6. 用户研究:深度解析用户画像

    "用户画像作为一种设计工具,可以很好得帮助设计师跳出"为自己设计"的惯性思维,聚焦目标用户,发现核心价值,赋能产品,在互联网各类型产品中有广泛的应用. 在产品研发过程中, ...

  7. 大数据学习-用户画像

    一. 什么是用户画像 用户画像是指根据用户的属性.用户偏好.生活习惯.用户行为等信息而抽象出来的标签化用户模型.通俗说就是给用户打标签,而标签是通过对用户信息分析而来的高度精炼的特征标识.通过打标签可 ...

  8. 全网超详细!用户画像标签体系建设指南!

    大家好,最近工作之余看了很多用户画像的文章,要么描述浅显.要么相对片面,对于数据分析人员来说算是窥中豹管. 今天我将结合日常工作实践和理解,整理了一份用户画像的文章,内容偏向数据分析方法论,个人觉得这 ...

  9. 如何用大数据构建精准用户画像?

    什么是用户画像? 用户画像(User Profile),作为大数据的根基,它完美地抽象出一个用户的信息全貌,为进一步精准.快速地分析用户行为习惯.消费习惯等重要信息,提供了足够的数据基础,奠定了大数据 ...

最新文章

  1. 利用反射,实现动态调用winform窗体
  2. vue element table
  3. 万圣节后的早晨九数码游戏——双向广搜
  4. 有哪些在朋友圈发会被秒赞的文案?
  5. android opencv中图像分割,opencv在android平台下的开发【4】-图像滤波详解
  6. 谈谈我对攻读计算机研究生的看法(转一个牛人文章)
  7. 一款强大的通讯录管理软件,Cardhop让你管理和编辑联系人更加方便和多样化
  8. 研究生学术英语写作网课答案
  9. SEO工具脚本,Python百度下拉框关键词采集工具
  10. mac下面如何修改只读文件(Read-only file system)
  11. linux系统的7种banding方式
  12. OpenCV-Python击中击不中HITMISS形态变换详解
  13. 【金猿案例展】某远程教育机构——以用户为中心 打造优势教学内容和智慧化学习产品...
  14. ppt幻灯片如何与母版背景一块复制到新幻灯片
  15. 牛顿法与牛顿下山法(切线法)
  16. arduino摄像头监控_如何使用Arduino和Pusher制作实时光监控器
  17. 阅读笔记 |《哲学·科学·常识》陈嘉映
  18. activiti学习01
  19. FL Studio2020最新中文直装版水果软件
  20. java学生-成绩关联实体_java画统计图

热门文章

  1. 【服务器存储数据恢复】华为OceanStor某型号存储raid5数据恢复案例
  2. 【解决方案】TSINGSEE青犀视频如何协助国家邮政局构建国标视频监控系统?
  3. Staking本质是一种通胀
  4. CMOS 器件版图 DUMMY 图形
  5. 【USACO】双数? 单数?
  6. lighttpd 配置
  7. Android 电话自动接听和挂断详解
  8. 关于war3中的随机数获取
  9. 机会留给那些有准备的人
  10. 为什么说MES系统影响着工业制造?