pyechart练习三:黑色星期五用户画像

文章通过Python库Pyecharts对BlackFridaySales.csv数据集进行可视化分析,包括年龄/性别的用户占比、婚姻状况/城市类别/消费情况的分布以及性别/年龄/购买力的箱型图。展示了Pie图表、Bar图表和Grid布局的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概述

数据集: 537577行 × 12列。

二、可视化

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

import pandas as pd
from pyecharts.charts import Pie, Bar, Grid, Page, Boxplot
import pyecharts.options as opts
df = pd.read_csv('./BlackFridaySales.csv')
age_data = df['Age'].value_counts().to_dict().items()
gender_data = df['Gender'].value_counts().to_dict().items()
gender_age_data = df.groupby(['Gender', 'Age']).agg({'User_ID': pd.Series.nunique})
print(gender_age_data.loc['F', :]['User_ID'])
pie = Pie()
pie2 = Pie()
pie.add('', list(age_data), radius=['20%','30%'],center=['10%','50%'], label_opts=opts.LabelOpts(formatter='{d}%'))
pie.set_global_opts(title_opts=opts.TitleOpts(title='用户的年龄占比', pos_left='3%'),
                    legend_opts=opts.LegendOpts(is_show=False))
pie.render('aaa.html')
pie2.add('', list(gender_data), radius=['20%','30%'],center=['30%','50%'], label_opts=opts.LabelOpts(formatter='{b}:{d}%', position='inside'))
pie2.set_global_opts(title_opts=opts.TitleOpts(title='用户的性别占比', pos_left='23%'),
                    legend_opts=opts.LegendOpts(is_show=False))
pie2.render('bbb.html')

bar = Bar()
bar.add_xaxis(list(gender_age_data.loc['F', :].index))
bar.add_yaxis('F', list(gender_age_data.loc['F', :].User_ID), stack='s1', label_opts=opts.LabelOpts(position='inside'))
bar.add_yaxis('M', list(gender_age_data.loc['M', :].User_ID), stack='s1', label_opts=opts.LabelOpts(position='inside'))
bar.set_global_opts(title_opts=opts.TitleOpts(title='用户性别&年龄占比',pos_left='60%'),
                    legend_opts=opts.LegendOpts(pos_right='right'))
bar.render('ccc.html')

水平展现多图

grid = Grid()
grid.add(bar, grid_opts=opts.GridOpts(pos_left='45%'))
grid.add(pie, grid_opts=opts.GridOpts(pos_left='10'))
grid.add(pie2, grid_opts=opts.GridOpts(pos_left='30%'))
grid.render('ddd.html')

 

垂直展现多图

page = Page()
page.add(pie, pie2, bar)
page.render('eee.html')

2、婚姻状况/城市类别/消费情况的占比

marriage = df['Marital_Status'].value_counts()
print(marriage.index)
marriage.rename(index={0: '未婚', 1: '已婚'}, inplace=True)
marriage_data = list(marriage.to_dict().items())
print(marriage)
p1 = Pie()
p1.add('', marriage_data, radius=['20%', '30%'], center=['20%','50%'], label_opts=opts.LabelOpts(formatter='{b}:{d}%'))
p1.set_global_opts(title_opts=opts.TitleOpts(title='用户婚姻状况占比'),
                   legend_opts=opts.LegendOpts(type_='plain', pos_top='10%', pos_left='left'))
p1.render('fff.html')

city_data = df['City_Category'].value_counts().to_dict().items()
print(city_data)
p2 = Pie()
p2.add('', list(city_data), radius=['20%', '30%'], center=['50%','50%'], label_opts=opts.LabelOpts(formatter='{b}:{d}%'))
p2.set_global_opts(title_opts=opts.TitleOpts(title='城市类别占比',pos_right='45%'),
                    legend_opts=opts.LegendOpts(pos_top='10%', pos_right='right'))
pie.render('ggg.html')

purchase_data = df.groupby(['City_Category']).agg({'Purchase': sum}).to_dict()['Purchase'].items()
print(purchase_data)
p3 = Pie()
p3.add('',list(purchase_data), 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))
p3.render('hhh.html')

''' 水平多图 '''
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('iii.html')

 

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

data = df.groupby(['Gender','Stay_In_Current_City_Years']).Purchase.mean().round(0)
print(list(data.loc['F', :]))
b = Bar()
b.add_xaxis(list(data.loc['F', :].index))
b.add_yaxis('F', list(data.loc['F', :]), color='#FFCF43')
b.add_yaxis('M', list(data.loc['M', :]), color='#6CBEFD')
b.set_global_opts(title_opts=opts.TitleOpts(title='当前城市停留时间&性别的用户对应的平均消费', pos_left='center'),
                  xaxis_opts=opts.AxisOpts(name='当前城市\n停留时间'),
                  yaxis_opts=opts.AxisOpts(name='平均消费', min_=8600),
                  legend_opts=opts.LegendOpts(pos_top='7%'))
b.render('jjj.html')

 

4、箱型图-购买力(性别/年龄)

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('kkk.html')

 

用户画像作为大数据的根基,它抽象出一个用户的信息全貌,为进一步精准、快速地分析用户行为习惯、消费习惯等重要信息,提供了足够的数据基础,奠定了大数据时代的基石。 用户画像,即用户信息标签化,就是企业通过收集与分析消费者社会属性、生活习惯、消费行为等主要信息的数据之后,抽象出一个用户的商业全貌作是企业应用大数据技术的基本方式。用户画像为企业提供了足够的信息基础,能够帮助企业快速找到精准用户群体以及用户需求等更为广泛的反馈信息。 用户画像系统能很好地帮助企业分析用户的行为与消费习惯,可以预测商品的发展的趋势,提高产品质量,同时提高用户满意度。构建一个用户画像,包括数据源端数据收集、数据预处理、行为建模、构建用户画像。有些标签是可以直接获取到的,有些标签需要通过数据挖掘分析到!本套课程会带着你一步一步的实现用户画像案例,掌握了本套课程内容,可以让你感受到Flink+ClickHouse技术架构的强大和大数据应用的广泛性。 在这个数据爆发的时代,像大型电商的数据量达到百亿级别,我们往往无法对海量的明细数据做进一步层次的预聚合,大量的业务数据都是好几亿数据关联,并且我们需要聚合结果能在秒级返回。 包括我们的画像数据,也是有这方便的需求,那怎么才能达到秒级返回呢?ClickHouse正好满足我们的需求,它是非常的强大的。 本课程采用Flink+ClickHouse技术架构实现我们的画像系统,通过学习完本课程可以节省你摸索的时间,节省企业成本,提高企业开发效率。希望本课程对一些企业开发人员和对新技术栈有兴趣的伙伴有所帮助,如对我录制的教程内容有建议请及时交流。项目中采用到的算法包含Logistic Regression、Kmeans、TF-IDF等,Flink暂时支持的算法比较少,对于以上算法,本课程将带大家用Flink实现,并且结合真实场景,学完即用。系统包含所有终端的数据(移动端、PC端、小程序端),支持亿级数据量的分析和查询,并且是实时和近实时的对用户进行画像计算。本课程包含的画像指标包含:概况趋势,基础属性,行为特征,兴趣爱好,风险特征,消费特征,营销敏感度,用户标签信息,用户群里,商品关键字等几大指标模块,每个指标都会带大家实现。课程所涵盖的知识点包括:开发工具为:IDEA FlinkClickhouseHadoopHbaseKafkaCanalbinlogSpringBootSpringCloudHDFSVue.jsNode.jsElemntUIEcharts等等 课程亮点: 1.企业级实战、真实工业界产品 2.ClickHouse高性能列式存储数据库 3.提供原始日志数据进行效果检测 4.Flink join企业级实战演练 5.第四代计算引擎Flink+ClickHouse技术架构6.微服务架构技术SpringBoot+SpringCloud技术架构7.算法处理包含Logistic Regression、Kmeans、TF-IDF等8.数据库实时同步落地方案实操9.统计终端的数据(移动端、PC端、小程序端) 10.支撑亿级海量数据的用户画像平台11.实时和近实时的对用户进行画像计算12.后端+大数据技术栈+前端可视化13.提供技术落地指导支持 14.课程凝聚讲师多年实战经验,经验直接复制15.掌握全部内容能独立进行大数据用户平台的设计和实操企业一线架构师讲授,代码在老师的指导下企业可以复用,提供企业解决方案。  版权归作者所有,盗版将进行法律维权。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值