[TOC]
第一章 Python与数据分析概况
课时1 指南
主要介绍python在数据处理、数据分析、数据可视化的常用方法与技巧
课时2 数据分析概况
宽泛的数据分析定义
基于数据进行分析,基本方法有对比分析、结构分析等,高级的分析方法有聚类、回归等,数据分析的作用是对数据所折射的事件进行探索,分析现状,寻找原因(过去),预测未来。
数据分析的流程
graph LR
A[分析目的] --> B[数据准备]
B --> C[数据处理]
C --> D{数据分析}
D --> E[数据展现]
E --> F[分析报告]
- 分析目的: 分析框架,角度,切入方式,数据维度(指标)
- 数据准备:收集数据,从公司内部的数据仓库,公开的出版物,互联网上的市场调研数据
- 数据处理:数据的加工过程
- 数据分析:此处指分析过程,具体指各种分析方法与数据应用思考
- 数据展现:参考B组Power BI和Tableau组的学习内容,将数据更形象的表达
- 总结报告:仪表盘,分析的结论
基本分析方法
对比、分组、结构、分布、交叉、矩阵等
高级分析方法
回归、聚类、决策树、神经网络、因子分析、时间序列等
数据展现
图标(表格、图形),帮助决策者快速理解数据信息
分析报告
总结呈现,产生数据的事件的分析,起因、过程、结果,报告中最为关键的是
建议,提供决策支持。
课时3 Python 概况
3W2H
What
免费、自由的编程语言,一种分析、挖掘工具
Who
使用人员
- 系统应用人员
软件、游戏、系统维护
- 互联网开发人员
Web、运维、网络维护
- 统计分析人员
统计分布、假设检验、统计建模
- 数据挖掘人员
挖掘算法、数据建模、机器学习
- 可视化人员
Why
- 解释型、动态语言
- 可执行的伪代码
- 代码风格简洁、优美
- 丰富的第三方应用包
- pandas 数据处理
- sklearn 机器学习
- matplotlib 可视化
- numpy 数据计算
How & How Continue
编码、分析,多看多练
后续课程:
- 数据分析
- 统计分析
- 数据挖掘
- 数据抓取
第二章 python安装
课时4 安装
AnaConda
下载方式
- 群共享[课程的群共享,非爱数圈的群]
本人亲测有效:
- 教育网下载
- VPN翻墙
- 适配电脑
- 64/32
- Windows/Linux/Mac
- 本课程 python 3.4
- 安装路径
- 无空格
- 无中文
- 环境变量 勾选自动
课时5 使用
- Spyder
win10可以把Navigator直接放到任务栏锁定
- project 方便管理开发内容
- panes: ctrl+shift+P
- 代码提示功能
- 变量浏览窗口
- ipython 交互式窗口
第三章 数据准备
课时6 数据类型
定义、赋值、变量
- 定义数据
- 给变量赋值
- 变量即数据赋值对象
- 命名规则:a-z,A-Z,数字,_
- 首字母不得为数字或者_
- 大小写敏感
- 不得占用保留字
数据类型
- 逻辑(布尔型)
取值:True, False
运算符:&,|, not
- 数值
实数,-,0,+
运算符:+、-、、/、//、%、*、浮点
[精度运算 decimal]
- 字符
转义字符 \
原始字符声明 r' '
'',"",""" """
课时7 数据结构
相互之间存在一种或多种关系的数据类型的集合
- 概念
- 定义
- 限制
- 访问[查]
- 修改[增、删、改]
pandas
- Series
- 从0开始计数
- 不得越界
- 不得append元素,只能append(n)|where n.type is Series
- 索引a:b 实际上是a<=x<b, 左闭右开
- drop 依据索引或依据值进行删除
- DataFrame
- 多行多列,类比Excel
- drop axis = 0, 删除行
- drop axis = 1, 删除列
# -*- coding: utf-8 -*-
"""
First Lesson:
try to use spyder with py3.6
"""
import numpy
import matplotlib
from pandas import read_csv
import matplotlib.pyplot as plt
data = read_csv("data.csv")
"""
通信品牌,号码
动感地带,183
全球通,139
全球通,137
神州行,1352
神州行,1351
神州行,1353
"""
gb = data.groupby(
by=['通信品牌'],
as_index=False
)['号码'].agg({
'用户数':numpy.size
})
font = {
'family' : 'SimHei'
}
matplotlib.rc('font',**font)
plt.pie(
gb['用户数'],
labels=gb['通信品牌'],
autopct='%.2f%%'
)
plt.show()
课时8 向量化运算
并行计算的一种方式,数组/向量/矩阵
- 等差数列
- 四则运算
- 函数计算
- 避免用循环for
- 过早的优化是魔鬼
问题:如何理解?
- lambda 匿名函数
- axis的操作疑问
3.3课的df.apply(min,axis=1)是遍历行,3.2课的df.drop(1, axis=0)是按行索引进行删除某行数据,或者说遍历行后进行删除。那么这个axis取0还是取1是行呢?
马尔克ov: 遍历行 换个方式就是对列的每一个数据做操作*
# -*- coding: utf-8 -*-
#生成一个整数的等差序列
#局限,只能用于遍历
r1_10 = range(1, 10, 2)
for i in r1_10:
print(i)
r1_10 = range(0.1, 10, 2)
#生成一个小数的等差序列
import numpy
numpy.arange(0.1, 0.5, 0.01)
r = numpy.arange(0.1, 0.5, 0.01)
#向量化计算,四则运算
r + r
r - r
r * r
r / r
#函数式的向量化计算
numpy.power(r, 5)
#向量化运算,比较运算
r>0.3
#结合过滤进行使用
r[r>0.3]
#矩阵运算
numpy.dot(r, r.T)
sum(r*r)
from pandas import DataFrame
df = DataFrame({
'column1': numpy.random.randn(5),
'column2': numpy.random.randn(5)#,
#'column3': abs(numpy.random.randn(5))
})
df.apply(min)
df.apply(min, axis=1)
#判断每个列,值是否都大于0
df.apply(
lambda x: numpy.all(x>0),
axis=1
)
#结合过滤
df[df.apply(
lambda x: numpy.all(x>0),
axis=1
)]
网友评论