本文首先将会介绍Python在数据分析领域最常见的两个包:pandas和numpy的使用,然后通过一个简单的案例巩固前面的内容。

python数据分析分布曲线 python数据分析步骤_python数据分析分布曲线

目录

一、pandas和numpy的使用
二、案例解析:销售数据分析

 

一、pandas和numpy的使用

#导入numpy包

import numpy as np

#导入pandas包

import pandas as pd

1、一维数据分析

numpy:array

  • a = np.array([2,3,4,5]) #定义:一维数组array,参数传入的是一个列表[2,3,4,5]
  • a[0] #查询
  • a[1:3] #切片访问:获取到的是序号从1到3的元素
  • a.dtype #查看数据类型dtype
  • a.mean()#统计计算:平均值
  • a.std()#统计计算:标准差
  • b=a*4#向量化运行:乘以标量

python数据分析分布曲线 python数据分析步骤_数据分析_02

pandas,Series,比numpy多了一个索引功能。

  • 定义:stockS=pd.Series([54.74,190.9,173.14,1050.3,181.86,1139.49],index=[‘腾讯’, ‘阿里巴巴’, ‘苹果’, ‘谷歌’, ‘Facebook’, ‘亚马逊’])
  • stockS.describe()#获取描述统计信息

python数据分析分布曲线 python数据分析步骤_Python_03

  • stockS.iloc[0]#iloc属性用于根据索引获取值
  • stockS.loc[‘腾讯’]#loc属性用于根据索引获取值

python数据分析分布曲线 python数据分析步骤_python_04

  • stockS2=stockS+stockS1#向量化运算:向量相加

python数据分析分布曲线 python数据分析步骤_python数据分析分布曲线_05

  • 对于缺失值,可以用
  • stockS2.dropna()#方法1:删除缺失值
  • stockS2=stockS.add(stockS1,fill_value=0)#方法2:将缺失值进行填充

python数据分析分布曲线 python数据分析步骤_python数据分析分布曲线_06

2、二维数据分析

numpy:array

  • 定义:a=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
  • 查询,获取行号是0,列号是2的元素:a[0,2]
  • 查询:获取第一行:a[0,:]
  • 查询:获取第一列:a[:,0]

python数据分析分布曲线 python数据分析步骤_开发语言_07

  • a.mean()#计算整个数组的平均值
  • a.mean(axis=1)#计算计算每一行的平均值
  • a.mean(axis=0)#计算计算每一列的平均值

python数据分析分布曲线 python数据分析步骤_python_08

pandas:DataFrame

  • 定义:先定义有序字典,再将字典传入数据框。或直接定义

python数据分析分布曲线 python数据分析步骤_数据分析_09

python数据分析分布曲线 python数据分析步骤_python数据分析分布曲线_10

直接定义

  • iloc属性用于根据位置获取值:
  • 查询第1行第2列的元素:salesDf.iloc[0,1]
  • 查询第一行所有列:salesDf.iloc[0,:]
  • 查询第一列所有行:salesDF.iloc[:,0]
  • loc属性用于根据索引获取值:
  • salesDf.loc[0,‘商品编码’]
  • 查询第一行:sales.Df.loc[0,:]
  • 查询第一列:sales.Df.loc[:,0]
  • 通过切片功能,获取指定范围的列:salesDf.loc[:,‘购药时间’:‘销售数量’]
  • 通过条件判断查询

python数据分析分布曲线 python数据分析步骤_python_11


文末领取全套Python系统学习籽料

  • 数据集描述统计信息

python数据分析分布曲线 python数据分析步骤_python_12

python数据分析分布曲线 python数据分析步骤_python_13

二、案例解析:销售数据分析



以朝阳医院2018销售数据为例:
https://pan.baidu.com/link/zhihu/7Vh1zUuNhUiVanZld3T6JWdFcFZYl2XwZY10==(安全链接,放心点击)



这部分,通过实际案例分析应用前面学习的到的内容。

数据分析步骤

  • 提出问题:数据分析的目的,为了解决实际问题
  • 理解数据:采集数据,导入数据到Python,查看数据集信息了解数据
  • 数据清洗:也叫数据预处理,
  • 构建模型:对清洗后的数据进行整理
  • 数据可视化:用图表方式展示给他人

**1.提出问题:**想知道朝阳医院2018年月均消费次数、月均消费金额、客单价

python数据分析分布曲线 python数据分析步骤_python数据分析分布曲线_14

。需要知道这些数据具体是指什么。

2、理解数据:现在我们已经有了Excel表格,接下来就是要导入到Python中。

python数据分析分布曲线 python数据分析步骤_开发语言_15

1)第一列是购药时间;2)第二列是社保卡号,如果存在几行卡号一样,说明有多次购买记录;3)第三列是商品编码;4)第四列是商品名称;5)第五列是销售数量;6)第六列是应收金额;7)第七列是实收金额(可能有折扣)

3、清洗数据:

一般有六步:选择子集-列名重命名-处理缺失值-数据类型转换-数据排序-异常值处理

  • **选择子集:**有时候原始数据太大,有些数据不需要处理,我们可以通过选择子集,筛选出想要处理的部分数据。(本案例不需要选择子集)

**代码:**使用loc切片 subSalesDf=salesDf.loc[0:4,‘购药时间’:‘销售数量’] 选择15行,15列。

  • 列名重命名:rename

python数据分析分布曲线 python数据分析步骤_数据分析_16

  • 缺失数据处理:dropna
    从表格数据可以看到,销售时间和社保卡号不能为空,不然不能定位到具体的客户,因此要将这两列的缺失值删除。删除前后,数据的行列数没有变化,可以看出这两列没有缺失值

python数据分析分布曲线 python数据分析步骤_python_17

删除缺失值,使得索引序号不连续,需要用reset_index重置索引salesDf=salesDf.reset_index(drop=True)

  • 数据类型转换:astype 表格中的销售数量、应收金额、实收金额应为数值,但是我们导入的时候,用了字符串类型,需要转换数字类型。

python数据分析分布曲线 python数据分析步骤_python_18

销售时间列中,不需要星期几的内容,只需要日期就行了,需要拆分字符串,使用split

python数据分析分布曲线 python数据分析步骤_数据分析_19

python数据分析分布曲线 python数据分析步骤_数据分析_20

得到了2018-01-01这样的数据,还是一个字符串,我们还想将数据转换成日期格式的数据

文末领取全套Python系统学习籽料

python数据分析分布曲线 python数据分析步骤_开发语言_21

转变数据格式后不要忘记删除重复值,这里可以看到删除重复值后,行数减少了

  • 排序:sort_values

python数据分析分布曲线 python数据分析步骤_python数据分析分布曲线_22

  • 异常值处理:从上面的排序结果可以看出,销售数量、应收金额、实收金额为负数,这显然是不合理的异常值,首先我们获取每一类的描述统计信息,看看各列是否存在异常值。然后在对异常值进行处理。

python数据分析分布曲线 python数据分析步骤_数据分析_23

python数据分析分布曲线 python数据分析步骤_数据分析_24

首先筛选正常值,再利用筛选出来的数据删除异常值

**4、数据建模:**计算月均消费次数、月均消费金额、客单价。

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

python数据分析分布曲线 python数据分析步骤_python数据分析分布曲线_25

python数据分析分布曲线 python数据分析步骤_python_26

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

python数据分析分布曲线 python数据分析步骤_python数据分析分布曲线_27

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

python数据分析分布曲线 python数据分析步骤_python数据分析分布曲线_28