python数据分析案例报告简单易懂(python数据分析综合案例)
《利用Python进行数据分析》——案例1从Bitly获取数据
这个案例主要目的是转换json类型的数据,利用python和pandas方法进行计数。
step1:获取数据
将json格式数据转化成python对象
step2纯python时区计数
1.获取时区+计数
2.对以上字典形式进行计数
3.更更简单的方法,直接用python标准库的collections.Counters类
从仅获取时区后开始
step3 使用pandas计数
step4 可视化 seaborn
5.补充一些语句
python数据分析:共享单车项目数据分析报告
本次项目运用Python的matplotlib、pandas工具对数据进行可视化分析,并使用Powerpoint工具制作描述性分析报告。
附:数据源
提取码:h9jx
[Python数据分析案例]某企业广告投放效果分析
抖音2020年第一季度财报显示,其月活跃用户超过10亿,庞大的用户量背后是巨大的流量。现如今,抖音无疑是许多投放广告的商家最青睐的原生广告平台之一。
用户可以根据一系列属性建立,包括等,同时广告商可以创建抖音广告,然后为该广告或广告组创建“受众”,从而广告商可以针对特定受众,适当地定制内容。
(1) 用户点击量、转化量与广告花费是否成正相关?
(2) 从兴趣、性别、年龄三个方面来看,目标受众是否定位准确以及找出投入产出最大的是哪一部分群体?
*点击率 = 点击量/展示量
*转化率 = 询问产品次数/点击量
*二次转化率 = 购买产品次数/询问产品次数
*单次链接点击费用 = 广告花费的金额/广告得到的点击量。(单次链接点击费用 (CPC):每次有人点击广告时,支付的平均费用。)
*平均每个激活用户的成本(CPA)=广告投入总额/所投的广告带来的激活用户数
*广告投资回报率 = 转化带来的销售额/广告花费
1、查看数据概况
2、用户点击量、转化量、广告销售额与广告花费是否成正相关?
(1)广告点击量与广告花费相关性
(2)转化量与广告花费相关性
(3)广告销售额与广告花费相关性
结论:散点图一可以看出点击量和广告花费呈正相关;转化量、销售额和广告花费虽然整体呈正相关,但是相关性较弱,且广告花费从200开始,点分布太散,说明广告投放效果不好,广告投放预算需要怎么调整,还需要进一步分析广告投放的受众情况。
2、问题二:从兴趣、性别、年龄三个方面来看,目标受众是否定位准确以及找出投入产出最大的是哪一部分群体?
(1)每个广告活动的花费占比
(2)每个广告活动的销售额占比
(3)不同广告活动的平均每个激活用户的成本(CPA)柱形图
(4)不同广告活动的广告投资回报率柱形图
(5)不同广告活动的转化率柱形图
结论: 整体分析完了,现在分析局部,分别查看三支广告的指标情况,可以看出1178广告的花费和销售额都是最高的,且三支广告的点击率、二次转化率差不多,但是1178广告的转化率和投资回报率是最低的、平均每个用户激活成本却是最高的,需要具体分析1178这支广告为何花费成本最高,投资回报率却最低。
3、1178这支广告为何用户激活成本高,但转化率却不理想,是否是用户群体选择有问题(从年龄、性别、兴趣进行分析)
(1)各年龄段广告花费、广告销售额与点击率、转化率、投资回报率情况
结论: 可以看出30-34年龄段用户的广告花费排名第二,广告销售额却是最高的,并且点击率最低,转化率和投资回报率却是最高的;也可以看出之前主要投放的45-49年龄段用户,广告花费是最多的,带来的销售额并不多,点击率是最高的,但是转化率和投资回报率却是最低的,说明之前广告投放用户群年龄段定位有问题,广告需要重点投放的用户群体年龄段是30-34用户。
(2)各性别广告花费、广告销售额与点击率、转化率、投资回报率情况
结论: 从用户性别可以看出,女性用户之前的广告花费最多,点击率最高,但是带来的销售额、转化率、投资回报率却是最低的,不如男性用户。说明之前广告投放主要用户群的性别选择有偏差,应该重点投放男性用户。
(3)从兴趣进行分组分析用户画像情况
结论: 根据不同兴趣用户可以看到投资回报率最高的兴趣是36、31、101、102、112;广告花费最高的兴趣是16、27、29、10、28,可以看出广告花费最多的兴趣投资回报率都不高,兴趣标签用户定位不准确。
1、广告点击量与广告花费呈现明显的正相关,但是广告转化率与广告花费相关性弱,主要是因为广告投放受众定位不准确,虽然花了大量的广告费,带来的销售额却不是很好;
2、通过分析对销售影响最大的1178广告,发现之前大量的广告花费是投放给45-49年龄段,还有女性群体,目标定位不准确,导致广告投资回报率低;
3、需要调整抖音上广告投放的受众:30-34年龄段的男性群体,用户的兴趣范围是36、31、101、102、112。
Python数据分析(八):农粮组织数据集探索性分析(EDA)
这里我们用 FAO(Food and Agriculture Organization) 组织提供的数据集,练习一下如何利用python进行探索性数据分析。
我们先导入需要用到的包
接下来,加载数据集
看一下数据量,
看一下数据的信息,
我们先来看一下variable,variable_full这两列的信息,
看一下统计了多少国家,
看一下有多少个时间周期,
看一下时间周期有哪些,
我们看一下某一列某个指标的缺失值的个数,比如variable是total_area时缺失值的个数,
我们通过几个维度来进行数据的分析:
我们按照上面的处理继续,现在我们想统计一下对于一个时间周期来说,不同国家在这个周期内的变化情况,
我们也可以按照国家分类,查看某个国家在不同时期的变化,
我们还可以根据属性,查看不同国家在不同周期内的变化情况,
我们还可以给定国家和指标,查看这个国家在这个指标上的变化情况,
我们还有region(区域)没有查看,我们来看一下:
通过上图可以看出,区域太多,不便于观察,我们可以将一些区域进行合并。减少区域数量有助于模型评估,可以创建一个字典来查找新的,更简单的区域(亚洲,北美洲,南美洲,大洋洲)
我们来看一下数据变化,
紧接着上面的数据处理,我们重新导入一下包,这次有一些新包,
我们看一下水资源的情况,
通过上图可以看出只有一小部分国家报告了可利用的水资源总量,这些国家中只有极少数国家拥有最近一段时间的数据,我们将删除变量,因为这么少的数据点会导致很多问题。
接下来我们看一下全国降雨指数,
全国降雨在2002年以后不再报到,所以我们也删除这个数据,
我们单独拿出一个洲来进行分析,举例南美洲,我们来看一下数据的完整性,
我们也可以指定不同的指标,
接下来,我们使用 pandas_profiling 来对单变量以及多变量之间的关系进行统计一下,
这里我们要计算的是,比如
我们按照 rural_pop 从小到大进行排序,发现的确有几个国家的农村人口是负数,
人口数目是不可能小于0,所以这说明数据有问题,存在脏数据,如果做分析预测时,要注意将这些脏数据处理一下。
接下来我们看一下偏度,我们规定,
正态分布的偏度应为零,负偏度表示左偏,正偏表示右偏。
偏度计算完后,我们计算一下峰度, 峰度也是一个正态分布,峰度不能为负,只能是正数 ,越大说明越陡峭,
接下来我们看一下,如果数据分布非常不均匀该怎么办呢,
上图是2013-2017年国家总人数的分布,通过上图我们发现,人口量少于200000(不考虑单位)的国家非常多,人口大于1200000的国家非常少,如果我们需要建模的话,这种数据我们是不能要的。这个时候我们应该怎么办呢?
通常,遇到这种情况,使用 log变换 将其变为正常。 对数变换 是数据变换的一种常用方式,数据变换的目的在于使数据的呈现方式接近我们所希望的前提假设,从而更好的进行统计推断。
接下来,我们用log转换一下,并看一下它的偏度和峰值,
可以看出偏度下降了很多,减少了倾斜。
可以发现峰度也下降了,接下来我们看一下经过log转换后的数据分布,
虽然数据还有一些偏度,但是明显好了很多,呈现的分布也比较标准。
首先我们先来看一下美国的人口总数随时间的变化,
接下来,我们查看北美洲每个国家人口总数随着时间的变化,
这个时候我们发现,一些国家由于人口数量本身就少,所以整个图像显示的不明显,我们可以改变一下参照指标,那我们通过什么标准化?我们可以选择一个国家的最小、平均、中位数、最大值...或任何其他位置。那我们选择最小值,这样我们就能看到每个国家的起始人口上的增长。
我们也可以用热度图来展示,用颜色的深浅来比较大小关系,
接下来我们分析一下水资源的分布情况,
我们可以进行一下log转换,
我们用热度图画一下,
连续值可以画成散点图,方便观看,
我们来看一下随着季节变化,人均GDP的变化情况,
相关程度:
相关度量两个变量之间的线性关系的强度,我们可以用相关性来识别变量。
现在我们单独拿出来一个指标分析是什么因素与人均GDP的变化有关系,正相关就是积极影响,负相关就是消极影响。
当我们在画图的时候也可以考虑一下利用bined设置一下区间,比如说连续值我们可以分成几个区间进行分析,这里我们以人均GDP的数量来进行分析,我们可以将人均GDP的数据映射到不同的区间,比如人均GDP比较低,比较落后的国家,以及人均GDP比较高,比较发达的国家,这个也是我们经常需要的操作,
做一下log变换,这里是25个bin
我们指定一下分割的标准,
我们还可以看一下人均GDP较低,落后国家的内部数据,下面我们看一下内部数据分布情况,用boxplot进行画图,
对于这部分的分布,我们还可以统计看一下其他指标,如下图所示,我们还可以看一下洪水的统计信息,
Python数据分析案例-药品数据分析案例
最近学习了python数据分析的一些基础知识,有numpy,pandas,matplotlib等,找了一个药品数据分析的小项目练一下手。
数据分析的步骤一般可以分为6个:
1,明确分析的目的
2,数据准备
3,数据清洗
4,数据分析
5,数据可视化
6,分析报告
数据分析的目的:
通过对朝阳区医院的药品销售数据的分析,了解朝阳医院的患者的月均消费次数,月均消费金额、客单价以及消费趋势、需求量前几位的药品等。
数据准备
数据是存在Excel中的,可以使用pandas的Excel文件读取函数将数据读取到内存中,这里需要注意的是文件名和Excel中的sheet页的名字。读取完数据后可以对数据进行预览和查看一些基本信息。
通过数据的基本信息可以看出来,总行数6578,但是社保卡号只有6576,其他行只有6577行,说明存在缺失值,这些将在数据清洗中进行处理。
数据清洗
数据清洗过程一般包括:选择子集、列名重命名、缺失数据处理、数据类型转换、数据排序及异常值处理等。
(1)选择子集
在我们获取到的数据中,可能数据量非常庞大,并不是每一列都有价值都需要分析,这时候就需要从整个数据中选取合适的子集进行分析,这样就可以提高效率。但是这个案例数据列较少,可以忽略这一步。
(2)列名重命名
在数据分析过程中,有些列名和数据容易混淆或产生歧义,不利于数据分析,这时候需要把列名换成容易理解的名称,可以采用rename函数实现:
(3)缺失数据处理
通过查看基本信息可以推测“社保卡号”这列存在缺失值,如果不处理这些缺失值会干扰后面的数据分析结果。缺失数据常用的处理方式有:删除缺失值,一般用于少量缺失值,对整体数据影响不大的情况;平均值填充,对于数值型常用;算法填充等。在本次案例中缺失值商量很少,直接使用dropna函数删除缺失数据。
(4)数据类型转换
在导入数据时为了防止导入不进来,会强制所有数据都是object类型,但实际数据分析过程中“销售数量”,“应收金额”,“实收金额”,这些列需要浮点型(float)数据,“销售时间”需要改成时间格式,因此需要对数据类型进行转换,可以使用astype()函数。
(5)异常值处理
查看数据的描述统计信息:我们可以看到最小值出现了负数,原因是销售数量的值为负数,需要将销售数量小于0的数据剔除掉。
数据分析及可视化
这里涉及到的数据可视化的部分并不多所以将数据分析和可视化结合起来,数据分析之前我们应该确定分析的指标。
(1)指标1:月均消费次数 ? 计算:月均消费次数 = 总消费次数 / 月份数
(2)指标2:月均消费金额 ? 计算:月均消费金额 = 总消费金额 / 月份数
(3)指标3:客单价? 计算:客单价 = 总消费金额 / 总消费次数
(4)指标4:消费趋势
每天的消费金额分布情况:一横轴为时间,纵轴为实收金额画散点图。
结论:从散点图可以看出,每天消费金额在500以下的占绝大多数,个别天存在消费金额很大的情况。
月消费金额变化趋势,将销售时间按月聚合分组,然后求出分组后的累计金额,画出折线图。
结论:1月,4月,5月,6月的消费金额变化不大,基本持平,2月和3月金额较低,可能是受春节假期影响,部分外来居民回家了,7月份最低是因为数据不全造成的。
药品销售情况分析,对“商品名称”和“销售数量”这两列数据进行聚合为Series形式,方便后面统计。
结论:对于销售量排在前几位的药品,医院应该时刻关注,保证药品不会短缺而影响患者。