python分析excel数据-总结:像Excel一样使用python进行数据分析

Excel是数据分析中最常用的工具,本篇文章通过python与excel的功能对比介绍如何使用python通过函数式编程完成excel中的数据处理及分析工作。在Python中pandas库用于数据处理,通过这些函数介绍如何通过python完成数据分析中导入数据,理解数据,清洗数据,模型构建和一部分KPI指标如何实现。

使用的数据是 朝阳医院2018年销售数据

aaARVb.jpg

aaARVb.jpg

导入数据以及理解数据部分

导入excel

import pandas as pd

xls=pd.ExcelFile("G:\xlsx文件\朝阳医院2018年销售数据.xlsx’)

salesdf=xls.parse("Sheet1’)

Salesdf.head()

qA3eae.jpg

qA3eae.jpg

数据维度(行列)

shape可以查看该表中的行数和列数

nQzyU3.jpg

nQzyU3.jpg

查看数据格式

Dtypes是一个查看数据格式的函数,可以一次性查看数据表中所有数据的格式,也可以指定一列来单独查看。

vauEJ3.jpg

vauEJ3.jpg

指定一列查看:

BNrEJn.jpg

BNrEJn.jpg

查看统计信息

使用Describe函数可以查看统计信息计数,平均值,标准差,最小值,四分位数,中位数,最大值。

mmUfqa.jpg

mmUfqa.jpg

查看列名称

使用columns函数查看列名称

b6neaa.jpg

b6neaa.jpg

数据清洗部分

删除缺失值

zUVfAj.jpg

zUVfAj.jpg

Python中处理空值的方法比较灵活,可以使用 Dropna函数用来删除数据表中包含空值的数据,也可以使用fillna函数对空值进行填充。

JZjEri.jpg

JZjEri.jpg

使用fillna函数把空值用0填充

BveYNj.jpg

BveYNj.jpg

更改列名称

Rename是更改列名称的函数,我们将来数据表中的应收金额列更改为应收金额(元)

salesdf=salesdf.rename(columns={"应收金额’:’应收金额(元)’})

n6FJBf.jpg

n6FJBf.jpg

删除重复值

jEBFRr.jpg

jEBFRr.jpg

使用drop_duplicates()删除重复值

fQzaEn.jpg

fQzaEn.jpg

分列

zum63u.jpg

zum63u.jpg

sales_split=pd.DataFrame((x.split(" ") for x in salesdf["购药时间’]),

index=salesdf.index,

columns=["日期’,’周几’])

jAbiQz.jpg

jAbiQz.jpg

需要注意的是缺失值会被当作浮点型 而split函数需要字符串类型,要先删除缺失值

Ubiuim.jpg

Ubiuim.jpg

将完成分列后的数据表与原数据表进行匹配

salesdf=pd.merge(salesdf,sales_split,right_index=True, left_index=True)

e22Mju.jpg

e22Mju.jpg

删除列

nmqmmm.jpg

nmqmmm.jpg

使用drop删除列,有以下等价的语法

DF= DF.drop("column_name’, 1);

DF.drop("column_name’,axis=1, inplace=True)

uauEJn.jpg

uauEJn.jpg

使用drop删除了购药时间这一列。

修改日期格式

使用to_datetime函数进行修改

salesdf.loc[:,’日期’]=pd.to_datetime(salesdf.loc[:,’日期’],format=’%Y-%m-%d’,errors=’coerce’)

baAnQz.jpg

baAnQz.jpg

排序

BFRVvy.jpg

BFRVvy.jpg

使用sort_values进行排序

By:按哪一列排序

ascending=True降序

ascending=Falses升序

salesdf=salesdf.sort_values(by=’日期’,ascending=True)

rYV3im.jpg

rYV3im.jpg

重命名行名

使用reset_index重命名行名

2euYBr.jpg

2euYBr.jpg

删除异常值

E7zAza.jpg

E7zAza.jpg

由于销量,应收金额和实收金额不为负,所以应该清除异常值

2Ibi2y.jpg

2Ibi2y.jpg

使用查询条件删除了异常值

数据建模部分

数据筛选

#使用“与”条件进行筛选

salesdf.loc[(salesdf["列名’]==’数值’)&(salesdf["列名’]==’数值’),["列名1′,’列名2′,’列名3′,’列名4’]]

aMBnMj.jpg

aMBnMj.jpg

#使用“或”条件进行筛选

salesdf.loc[(salesdf["列名’]==’数值’)|(salesdf["列名’]==’数值’),["列名1′,’列名2′,’列名3′,’列名4’]]

在前面的代码后增加price字段以及sum函数,按筛选后的结果将price字段值进行求和,相当于excel中sumifs的功能。

YZRf2y.jpg

YZRf2y.jpg

还有一种筛选的方式是用query函数。下面是具体的代码和筛选结果。

vyuyIn.jpg

vyuyIn.jpg

数据汇总

Excel的数据目录下提供了“分类汇总”功能,可以按指定的字段和汇总方式对数据表进行汇总。Python中通过Groupby函数完成相应的操作,并可以支持多级分类汇总。

reaiei.jpg

reaiei.jpg

nieAVn.jpg

nieAVn.jpg

Groupby是进行分类汇总的函数,使用方法很简单,制定要分组的列名称就可以,也可以同时制定多个列名称,groupby按列名称出现的顺序进行分组。同时要制定分组后的汇总方式,常见的是计数和求和两种。

RFBrE3.jpg

RFBrE3.jpg

可以通过关联的列进行查询,通过groupby函数计算出了商品的销售次数。

计算几个KPI指标:

1.月均消费次数

删除重复数据计算消费总次数

ememAj.jpg

ememAj.jpg

设定好起始日期和结束日期

y2yQRj.jpg

y2yQRj.jpg

计算天数,月份数。然后用所有消费次数除以月份数可以得到月均消费次数。

26VbEn.jpg

26VbEn.jpg

2.客单价

使用总消费金额除以消费次数得到客单价

vMR3Mj.jpg

vMR3Mj.jpg

3.月均消费金额

使用总消费金额除以消费次数得到月均消费金额

EzIBrq.jpg

EzIBrq.jpg

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值