Pandas+Pyecharts | 某APP大学生用户数据分析可视化

大家好,我是 👉【Python当打之年(点击跳转)】

本期我们利用Python分析某APP全国大学生用户数据,看看:

  • 哪个学校的学生最喜欢使用快手APP
  • Android、IOS、PC三大平台用户占比份额
  • 全国哪些城市(学校所在地)的学生使用频次最高
  • 全国哪些省份的生源最喜欢使用快手APP

希望对小伙伴们有所帮助,如有疑问或者需要改进的地方可以私信小编。

涉及到的库:

  • Pandas — 数据处理
  • Pyecharts — 数据可视化

可视化部分:

  • 柱状图 — Bar
  • 地图 — Map
  • 组合组件 — Grid
  • 象形图 — PictorialBar

🏳️‍🌈 1. 导入模块

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.charts import Bar
from pyecharts.charts import Grid
from pyecharts.charts import PictorialBar

🏳️‍🌈 2. Pandas数据处理

2.1 读取数据

df = pd.read_csv('kuaishou.csv')
df.head(10)

在这里插入图片描述

2.2 查看索引、数据类型和内存信息

在这里插入图片描述
一共 704726 条数据。

2.3 将学校城市拆分成两列:城市、省份

df[['学校省份','学校城市']] = df['学校城市'].str.split(':',expand=True)
df.head(10)

在这里插入图片描述

🏳️‍🌈 3. Pyecharts数据可视化

3.1 哪个学校学生使用频次最多

bar = (
    Bar(init_opts=opts.InitOpts(width='1000px', height='1000px',bg_color='#0d0735'))
    .add_xaxis(df_rate_tmp['学校'].tolist())
    .add_yaxis("", df_rate_tmp['频次'].tolist())
    .set_series_opts(label_opts=opts.LabelOpts(position="right",
                                              font_size=12,
                                              font_weight='bold',
                                              formatter='{c} 次'),
                    itemstyle_opts={"normal": {
                                                "barBorderRadius": [30, 30, 30, 30],
                                                'shadowBlur': 10,
                                                'shadowColor': 'rgba(0,191,255,0.5)',
                                                'shadowOffsetY': 1,
                                                'opacity': 0.8
                                                }
                                       }
                    )
    .set_global_opts(
                    xaxis_opts=opts.AxisOpts(is_show=False,),
                    yaxis_opts=opts.AxisOpts(
                        axislabel_opts=opts.LabelOpts(font_size=13,color='#fff200'),
                        axistick_opts=opts.AxisTickOpts(is_show=False),
                        axisline_opts=opts.AxisLineOpts(is_show=False)
                    ),
                    title_opts=opts.TitleOpts(title="学生使用频次最多的学校",pos_left='center',pos_top='1%',
                              title_textstyle_opts=opts.TextStyleOpts(font_size=22,color="#38d9a9")),
                    visualmap_opts=opts.VisualMapOpts(is_show=False,is_piecewise=False),
                    graphic_opts=[
                            opts.GraphicGroup(
                                graphic_item=opts.GraphicItem(left="5%", top="5%"),
                                children=[
                                    opts.GraphicRect(
                                        graphic_item=opts.GraphicItem(
                                            z=0, left="center", top="middle"
                                        ),
                                        graphic_shape_opts=opts.GraphicShapeOpts(width=900, height=900),
                                        graphic_basicstyle_opts=opts.GraphicBasicStyleOpts(
                                            fill="rgba(0,0,0,0)",
                                            stroke="#fff",
                                            line_width=2,
                                            shadow_blur=20,
                                            shadow_offset_x=5,
                                            shadow_offset_y=5,
                                            shadow_color="#4169E1",
                                        ),
                                    ),
                                ],
                            )
                        ]
                    )
    .reversal_axis()
)

在这里插入图片描述

  • 浙江水利水电学院学生以接近50000的快手使用频次高居榜首,武汉工程大学、福建医科大学、汉口学院紧随其后,快手使用频次接近40000次

3.2 前五学校学生各平台使用频次

在这里插入图片描述

  • 三大平台的使用情况依次为:Android、ISO、PC,这也符合目前的电子设备使用行情(手机>电脑)

3.3 哪个省份的生源使用快手APP数量最多

map_chart = Map(init_opts=opts.InitOpts(theme='light',width='1000px', height='600px',bg_color='#26A69A'))
map_chart.add('',
              [list(z) for z in zip(province_num['学生省份'].tolist(), province_num['数量'].tolist())],
              maptype='china',
              is_map_symbol_show=False,
              itemstyle_opts={
                  'normal': {
                      'shadowColor': 'rgba(0, 0, 0, .5)',
                      'shadowBlur': 5,
                      'shadowOffsetY': 0,
                      'shadowOffsetX': 0,
                      'borderColor': '#fff'
                  }
              }
              )
map_chart.set_global_opts(
    visualmap_opts=opts.VisualMapOpts(
        max_= 40000,
        is_piecewise=True,
        is_show=True,
        split_number = 8,
        pos_top='60%',
        pos_left='8%',
        range_text=['使用频次:', ''],
        range_color=['#f7f4f9','#e7e1ef','#d4b9da','#c994c7','#df65b0','#e7298a','#ce1256','#91003f']
    ),
    legend_opts=opts.LegendOpts(is_show=False),
    tooltip_opts=opts.TooltipOpts(is_show=True,trigger='item',formatter='{b}: {c}'),
    title_opts=dict(text='各省份生源数量',left='center',top='8%',textStyle=dict(color='#DC143C', font_size=20, font_weight='bold')),)
map_chart.render_notebook()

在这里插入图片描述

  • 从各省份生源数量分布来看:东部沿海地区使用快手APP的学生数量要明显高于中部和西部地区

3.4 快手APP男女用户比例

在这里插入图片描述

  • 男女用户比例:男性用户(54.55%)要比女性用户(45.45%)高出大概10%

🏳️‍🌈 4. 在线运行地址


以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享注明出处)让更多人知道。

### Python 数据分析可视化大屏的实现 #### 使用 Pyecharts 创建动态图表 Pyecharts 是一个用于生成 Echarts 图表的 Python 库,它能够帮助开发者快速构建交互式的前端图表。通过该库可以轻松制作各种类型的图表,如柱状图、饼图、热力图等,并将其集成到网页中[^1]。 ```python from pyecharts.charts import Bar from pyecharts import options as opts bar = ( Bar() .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]) .add_yaxis("商家A", [5, 20, 36, 10, 75, 90]) .set_global_opts(title_opts=opts.TitleOpts(title="销售情况")) ) bar.render("sales.html") # 将图表保存为 HTML 文件 ``` #### 基于 Dash 的数据可视化大屏设计 Dash 是 Plotly 提供的一个框架,专门用来开发具有高度互动性的 Web 应用程序。利用 Dash 不仅能展示静态图像,还能加入实时更新的功能,非常适合搭建企业级的大屏幕监控系统[^4]。 ```python import dash import dash_core_components as dcc import dash_html_components as html from random import randint app = dash.Dash(__name__) data = [{'x': list(range(10)), 'y': [randint(1, 10) for _ in range(10)], 'type': 'line', 'name': 'Series'}] layout = { 'title': '随机数变化趋势', } app.layout = html.Div([ dcc.Graph( id='example-graph', figure={ 'data': data, 'layout': layout } ) ]) if __name__ == '__main__': app.run_server(debug=True) ``` #### 推荐使用的其他库和技术栈 除了上述提到的工具外,还有多个优秀的第三方包可供选择: - **Pandas**: 主要负责处理结构化表格型数据集,在清洗转换阶段发挥巨大作用。 - **NumPy**: 支持多维数组操作的基础计算引擎。 - **Matplotlib & Seaborn**: 经典绘图组合方案,适合绘制统计图形。 - **Bokeh**: 类似于 Plotly 和 Dash ,支持大规模流式传输场景下的高性能渲染效果[^2]。 #### 函数封装实例 下面给出一段通用函数定义代码片段,展示了如何接收不同类型参数并返回相应配置对象的方法[^3]: ```python def generate_chart_config(chart_type=None, dimensions=[], measures=[]): config = {} if chart_type == 'pie': pass # 配置饼图逻辑 elif chart_type == 'bar': pass # 设置条形图属性 return config ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python当打之年

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值