数据分析用到的软件
jupyter notebook
代码模式
使用shift+enter键运行代码。每一个单元格都是一个代码区域
使用Insert菜单来添加新的单元格,变量可以跨单元格使用。
标记模式
模式切换之后,支持Markdown来写笔记
pendulum库
可以在官网上了解,一个日期时间库
数据分析基本常识
什么是数据分析
数据分析是指利用合适的工具,在统计学的支撑下,对数据进行一定程度的预处理,然后借助具体的业务分析逻辑,帮助大家进行业务监控、问题定位、解决问题的过程。
为什么做数据分析
根据数据分析趋势
数据分析究竟在分析什么
现状分析:只看到结果、表象
原因分析:分析内部成因
预测分析:预测销量和未来的计划
数据分析会分析哪些指标
- 总体概览指标:又叫做关键性指标,反应某个时间段内某个业务的平均值。
- 对比性指标:说明现象之间数量对比关系。例如:同比、环比、差值
集中趋势指标:反应某个现象在一定时间内所达到的一般水平。主要分为:
- 数值平均
- 位置平均:众数、中位数
离中趋势(离散程度):主要用于反应数据的波动情况
- 极差:全距,用最大值减去最小值
- 方差
- 标准差
相关性指标
数据分析的流程
- 熟悉工具
- 明确目的
- 获取数据
- 熟悉数据
- 处理数据
- 分析数据
- 得出结论
- 验证结论
- 展示结论
Pandas
Series
Series类似与一维数组的对象,由一组数据以及一组与之相关的数据标签(索引)组成
Series的数据标签可以不局限于数字
Series常见操作
构建一个Series
1 | # 通过常规列表来创建Series |
输出
name lzx
age 18
location jinan
查看一个Series的index和values
1 | print(ser1.index) |
输出
RangeIndex(start = 0, stop = 4, step = 1)
Index([‘name’, ‘age’, ‘location’], dtype = ‘object’)
可以使用切片的方法来截取index,如
1 | print(ser1.index[0:3]) |
改变Series的index值
1 | # 想改index只能一起改,不能通过切片选择部分index进行修改 |
Series的值不能通过series.values属性修改(和修改index相反)
1 | # 先选中要修改的values值,再来重新赋值修改 |
DataFrame
由行标签和列表前以及值组成的二维数据结构,类似于平时的表结构
常见操作
创建DataFrame
1 | # 通过普通列表创建DataFrame |
字典的键会成为DataFrame的列标签,所有的值将成为每一列的值
小写 | 大写 | |
---|---|---|
0 | a | A |
1 | b | B |
2 | c | C |
3 | d | D |
1 | # 指定index和column |
DataFrame常见的属性
df.shape
返回对应的行和列,如
1 | df4.shape # 返回行和列(元组) |
df.index
返回df的索引
df.colunms
返回df的列信息
df.values
返回整个DataFrame的信息
df.T(创建副本,不会修改原来的DataFrame)
返回df矩阵的转置
df[’列名‘]
返回该列对应的值,以Series存储
df[‘列名’].value_counts()
统计每一列不同元素的个数
df[‘列名’].unique()
对列元素进行去重处理
df[‘列名’].nunique()
求列元素不重复元素的个数,等效于len(df[‘列名’].unique())
df.describe()
返回该DataFrame的概览(包括每个列的元素个数、不重复元素个数、最大值、出现频率最高元素)
df.info()
列出每一列值的类型
df.head(n)
查看DataFrame前n行数据,默认n = 5
df.tail(n)
查看DataFrame的后n行,默认n = 5