数据分析实战 | Pandas交叉列表探寻用户数下降的原因

简介: 数据分析实战 | Pandas交叉列表探寻用户数下降的原因

场景描述


某公司经营的一款 APP 小游戏,游戏的用户数一直维持在一定的水平。然而,从 9 月开始,用户数开始大量减少。根据以往经验尝试做出如下假设。

  • 商业推广上存在问题,流失的用户数超过了新增的用户数
  • 每月不同主题的游戏活动开始变得很无聊,用户都不爱玩了
  • 按用户的性别或者年龄段等属性来划分用户群,可能是其中某个用户群出现了问题

经了解发现

  • 同上月相比,商业推广的力度大体没变,新增用户数也大致保持在相同的水平
  • 开展的各种游戏活动同上月相比几乎没有变化


因此,只剩下第 3 条假设没能得到验证了。再进一步深挖假设的内容,可以知道用户群通常是按照 性别年龄段 等来划分的。于是,首先我们可以考虑是否有某个属性的用户群数量减少了,然后通过和上月的数据加以比较,确认用户数量减少了的用户属性,并思考如何恢复用户数量。


注:由于无法事先猜测问题出现的原因,而是需要通过数据分析来探索原因所在,这种方式称为“探索型数据分析”。


数据描述


DAU(Daily Active User)

每天至少来访 1 次的用户数据,139112 行。

字段 类型 含义
log_date str 访问时间
app_name str 应用名
user_id numpy.int64 用户 ID
user_info

用户属性数据

字段 类型 含义
install_data str 首次使用日期
app_name str 应用名称
user_id numpy.int64 用户 ID
gender str 性别
generation numpy.int64 年龄段
device_type str 设备类型


数据分析


数据读取

读取两个数据集。

import pandas as pd
DAU_data = pd.read_csv('DAU.csv')
user_data = pd.read_csv('user_info.csv')
复制代码


显示 DAU 数据集前五行。

DAU_data.head()
复制代码

image.png


显示 user_data 数据集前五行。

user_data.head()
复制代码

image.png


DAUuser_datauser_id 为 key 进行合并,取交集。

all_df = DAU_data.merge(user_data, on=['user_id', 'app_name'])
all_df.head()
复制代码

image.png


修改,新增列。

列名 修改前 修改后
gender F/M 女/男
generation 10 10-19
新增 log_month 2013-08-01 8 月
import numpy as np
all_df['gender'] = all_df['gender'].replace({'F':'女','M':'男'})
all_df['generation'] = all_df['generation'].apply(lambda x:str(x) + '-' + str(x + 9))
all_df['log_month'] = pd.to_datetime(all_df['log_date']).map(lambda x : x.strftime("%m")[1] + '月'
复制代码


用户性别分析

统计两月中男女用户的人数,看看性别比例是否相差较大。

all_df.pivot_table(index='log_month',
                   columns='gender',
                   values='user_id',
                   aggfunc=np.count_nonzero)
复制代码

image.png

从上表来看,虽然整体上用户数量在较少,但性别比例没有很大变化。因此,用户数量减少的主要原因并不是某一性别用户大量减少。


用户年龄段分析

统计各个年龄段用户数量的变化情况。

all_df.pivot_table(index='log_month',
                   columns='generation',
                   values='user_id',
                   aggfunc=np.count_nonzero)
复制代码

image.png

无论哪个年龄段,用户的比例都没有发生大的变化。


用户性别&年龄段分析

进一步细分,看看是否某个性别下某个年龄段的用户数量减少了,下面我们将性别和年龄段组合起来,形成 2 重交叉列表统计。

all_df.pivot_table(index='log_month',
                   columns=['gender','generation'],
                   values='user_id',
                   aggfunc=np.count_nonzero)
复制代码

image.png

同样的,每个用户群所占的比例基本不变,没有用户群数量大幅减少的情况。


用户设备

最后一个维度,统计用户使用的设备差异。

all_df.pivot_table(index='log_month',
                   columns='device_type',
                   values='user_id',
                   aggfunc=np.count_nonzero)
复制代码

image.png

根据上表,明显看到使用 Android 的用户大量减少。

下面我们以天为单位,详细看看两种设置使用用户的变化情况。

image.png

通过上图,可以看到,Android 的用户数从 9 月 13 日开始急剧减少。

那么下一步就是弄清楚 Android 手机端出现的问题,并制定相应的改善策略,使用户数量回到和上月相同的水平,这里就不详细展开了。

这就是今天要分享的内容,我们下期再见!



相关文章
|
26天前
|
消息中间件 数据挖掘 Kafka
Apache Kafka流处理实战:构建实时数据分析应用
【10月更文挑战第24天】在当今这个数据爆炸的时代,能够快速准确地处理实时数据变得尤为重要。无论是金融交易监控、网络行为分析还是物联网设备的数据收集,实时数据处理技术都是不可或缺的一部分。Apache Kafka作为一款高性能的消息队列系统,不仅支持传统的消息传递模式,还提供了强大的流处理能力,能够帮助开发者构建高效、可扩展的实时数据分析应用。
69 5
|
23天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
53 0
|
17天前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
35 2
|
24天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
31 2
|
15天前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
15天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
|
1月前
|
机器学习/深度学习 数据采集 算法
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
【10月更文挑战第5天】随着数据科学和机器学习领域的快速发展,处理大规模数据集的能力变得至关重要。Python凭借其强大的生态系统,尤其是NumPy、Pandas和SciPy等库的支持,在这个领域占据了重要地位。本文将深入探讨这些库如何帮助科学家和工程师高效地进行数据分析,并通过实际案例来展示它们的一些高级应用。
55 0
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
|
1月前
|
数据采集 数据可视化 数据挖掘
Python 数据分析实战:使用 Pandas 进行数据清洗与可视化
【10月更文挑战第3天】Python 数据分析实战:使用 Pandas 进行数据清洗与可视化
95 0
|
3月前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
84 2
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
188 4
下一篇
无影云桌面