请简述python数据分析流程_简单案例讲解Python数据分析的基本步骤

上篇文章我们初步认识了numpy包和pandas包的基本用法,这篇文章就来讲一下如何利用Python做数据分析。

一、数据分析的基本步骤

1. 明确问题,理解数据

(1)先把问题了解清楚,明确分析背景及目的

(2)了解数据集的整体情况

(3)明确分析思路

2. 数据清洗

(1)确定数据集

(2)处理重复值和缺失值

(3)处理数据类型/格式

(4)处理异常值

3. 构建模型,可视化分析

构建分析模型,利用可视化图表进行分析

4. 结论及建议

根据分析得出结论,并给出相应的建议

二、如何理解数据

当我们得到数据集时,可以通过提取数据集的描述统计信息,初步了解数据集的整体情况第一步,导入文件

2. 第二步,检查数据导入是否完整

用shape属性查看行列数

3. 第三步,预览表格整体情况

用head()方法打印前5行

4. 第四步,检查各字段的数据类型是否正确

用dtypes属性

三、如何进行数据清洗确定数据集

(1)选择子集

当我们不需要那么多数据时,可以通过筛选来选出需要的数据集,比如现在我只需要前5行前3列数据

(2)列名重命名

PS:inplace=False,表示原数据框不会变,而是会创建一个新的数据框进行改变,缺省时默认False

inplace=True,表示原数据框会变化,因为我们后续分析要用到改变后的数据框,所以指定True

2. 处理重复值和缺失值

由于“销售时间”和“社保卡号”任意一个都不能为空,所以要删除这两列中为空的行

3. 处理数据类型/格式

(1)数字类型转换

用astype函数把字符串数字转换为数字型数字

(2)日期类型转换

把字符串日期中的“星期”去掉,保留“日期”,举例:

① 第一步,定义日期分隔函数

因为输入的timeColSer是Series类型,所以返回要要转换成Series类型,才能不改变转换前后的数据结构

②第二步,获取“销售时间”列,把这列作为参数传入分隔函数,并对打印结果进行检验

③ 第三步,把处理后的日期替换到原来的“销售时间”列

④ 把字符串日期转换为日期型日期

4. 处理异常值

① 查看数据集的描述统计信息

用describe函数计算描述统计信息,describe只对数字类型的列进行计算

从上图中可以看出三项数据的最小值都是负数,明显是不符合常理,由此可以判断肯定存在异常值

② 排序

为了进一步确认确认销售数量、应收金额、实收金额出现负数的情况,把销售数量列进行升序排序以便观察

用sort_values方法进行排序

结果发现这3列的确是存在很多负数行,需要把这些行删除掉

PS:ascending=True 表示升序,ascending=False表示降序

na_position=True表示排序的时候,把空值放到前列,这样可以比较清晰的看到哪些地方有空值,缺省时默认是False,即空值放到最后

ignore_index=True表示重新排序后行号也重新按0~n重命名,缺省时默认是False,即按照原行号打印

③ 删除异常值

通过构建查询条件来删除异常值

最后检查是否删除成功

四、如何构建模型

案例:分析某电商产品的月均消费次数、月均消费金额、客单价

1. 业务指标1,月均消费次数

案例中业务部门定义:月均消费次数 = 总消费次数 / 月数

(1)先计算总消费次数

总消费次数中,统计口径为:同一天内,同一个人发生的所有消费算作一次消费

也就是说,要对同一天内同一个人的多次消费进行排重,计算排重后的行数就是总消费次数

(2)再计算月份数

只需要找到开始时间和结束时间,两个时间的时间差除以30即可得出月份数

① Step1,按销售时间排序

排序后发现销售时间列存在时间类型的空值NaT(Not Available Time),需要把这些行删除掉

② Step2,获取时间范围

由于删除了记录,需要重新计算行数

获取时间范围

3)Step3,计算月数

先计算出相隔天数

再把天数转换成月数

③ 最后计算月均消费次数

2. 业务指标2,月均消费金额

月均消费金额 = 总消费金额 / 月数

(1)先计算总消费金额

(2)再计算月均消费金额

3. 业务指标3,客单价

客单价(per customer transaction) = 总消费金额 / 消费人数

消费人数有两种统计口径,一种是“同一个人不同时间(天)消费算不同人”,另一种是“同一个人不同时间(天)消费算同一个人”,这里取第一种统计口径

在业务指标2中计算出了总消费金额,业务指标1中计算出了消费人数,那么客单价即:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值