python只保留数据的某几列_如何进行数据分析

该博客介绍了数据分析的步骤,以药品销售数据为例,先提出需分析月均消费次数、金额等业务指标的问题,接着进行数据清洗,包括列名重命名、缺失值处理等,最后构建模型,计算月均消费次数、金额和客单价等指标。

数据分析主要分为以下步骤:

1.首先是提出问题,明确需要具体解决的问题

2.采集可以用于分析的数据,并对数据集进行理解

3.对数据进行清洗,目的是使数据结构更有利于我们的后续分析

4.进行模型的构建,解决问题,并实现可视化

a990c2d08b6e3fcecbf5dfd48cd0b2b5.png

下面对药品销售数据进行初步分析

数据来源为已有的某药店药品销售情况文件

一. 提出问题

需要解决的问题是,从销售数据中分析出以下业务指标:

月均消费次数,月均消费金额,客单价,消费趋势

首先对数据进行初步了解,读取数据:read_excel

4c3a10c103e861c05f1f79bcbcaabeb3.png

查看数据基本信息:

a06faaef9225feceb68e72f87fdade18.png

从而得知数据包含的信息有

1. 购药时间

2.社保卡号:代表购买药物的人

3.商品编码:药物的编码

4.商品名称:药物的名称

5.销售数量:购买的数量

6.应收金额:商品标价

7.实收金额:实际卖出的金额,打折促销等

二.数据清洗

对数据进行基本清洗,从而进行后续分析

1.选择子集(本案例不需要选择子集)

方法:salesDf.loc[0:4,'购药时间':'销售数量']

2.列名重命名

为了使列名更直观,更容易理解其含义,对列名进行重新命名

rename(columns={},index={},inplace=False)

columns修改列名,index修改行名,默认inplace=False数据框本身不会变,而会创建一个改动后新的数据框,inplace=True,数据框本身会改动

d8b05f89390f75aeee0de60cbd5ef420.png

3.缺失数据处理

数据中通常有很多缺失值,需要进行去除,否则影响分析结果

python缺失值有3种:None,NA,NaN

1)Python内置的None值

2)在pandas中,将缺失值表示为NA,表示不可用not available。

3)对于数值数据,pandas使用浮点值NaN(Not a Number)表示缺失数据。

dropna:how='any' 在给定的任何一列中有缺失值就删除

f3747c13904438dccc94a7e593b9ba5d.png

4.数据类型转换

字符串转换为数值(浮点型):astype

29e8bf709950cae24a8f17f82c068210.png

字符串转换为日期数据类型:

方法1:split字符串分割后获取日期

903283378dc64ecb33485d711672ff94.png

方法二:

to_datetime函数

errors='coerce' 如果原始数据不符合日期的格式,转换后的值为空值NaT

format 是原始数据中日期的格式

c0ee9a30cf0c4612bfbb31a81e651570.png

处理后的数据类型

5e37e04d82599e0d4a2c45d3f0f86172.png

转换日期过程中不符合日期格式的数值会被转换为空值

注意再次删除列(销售时间,社保卡号)中为空的行

salesDf=salesDf.dropna(subset=['销售时间','社保卡号'],how='any')

5.数据排序

sort_values

by:按哪几列排序

ascending=True 表示升序排列,ascending=True表示降序排列

na_position=True表示排序的时候,把空值放到前列,这样可以比较清晰的看到哪些地方有空值

a6c90a598202acb056183b362ba637c3.png

排序后的列索引值是之前的行号,需要修改成从0到N按顺序的索引值

reset_index

9a0f6c06f3ad25cfa75e8d7e9f57b211.png

6.异常值处理

a7e04dd5672e8db70f6f7822be4bb10b.png

通过描述指标:查看出“销售数量”值不能小于0

删除异常值的方法:通过条件判断筛选出数据

6485433e38105d86377bb04f817a894a.png

三.构建模型

业务指标1:月均消费次数=总消费次数 / 月份数

总消费次数:同一天内,同一个人发生的所有消费算作一次消费

根据列名(销售时间,社区卡号),如果这两个列值同时相同,只保留1条,将重复的数据删除

53273fa54fa8fe6e9fd4507f97bd1cf0.png

月份数:销售时间的跨度

第1步:按销售时间升序排序

bf7bef701fc4534ed4871bc6fb81dce5.png

第2步:获取时间范围

8a358b640c0c3405ef6fd7025b775012.png

第3步:

days 转为天数

运算符“//”表示取整除

8271e24eb8032b3ed988c31c4a5c8adb.png

业务指标1:月均消费次数=总消费次数 / 月份数

047af414956a63df19ab0278180b85f9.png

指标2:月均消费金额 = 总消费金额 / 月份数

sum() 求和

e1fd6e887dc3525e4e5ac842f85dccdf.png

指标3:客单价=总消费金额 / 总消费次数

客单价(per customer transaction)是指商场(超市)每一个顾客平均购买商品的金额,客单价也即是平均交易金额。

7c1f5c497fe4f42565cd304219c8b86e.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值