文章目录
- 机器学习——数据科学包(二)
- 一、pandas课程介绍
- 二、ipython开发环境的搭建
- 三、介绍ipython的技巧
- 四、numpy简介
- 五、pandas快速入门
- 六、数据分析实例:分析MovieLens电影数据
- 七、pandas核心数据结构
- 八、pandas基础运算
机器学习——数据科学包(二)
一、pandas课程介绍
(一)什么是pandas?
pandas是Python里分析结构化数据的工具集
基础是numpy:高性能的矩阵运算
图形库matplotlib:提供数据可视化
(二)pandas能做什么?
结构化数据分析例如:数据挖掘
二、ipython开发环境的搭建
(一)安装jupyter
Jupyter Notebooks 是一款开源的网络应用,我们可以将其用于创建和共享代码与文档。其提供了一个环境,你无需离开这个环境,就可以在其中编写你的代码、运行代码、查看输出、可视化数据并查看结果。因此,这是一款可执行端到端的数据科学工作流程的便捷工具,其中包括数据清理、统计建模、构建和训练机器学习模型、可视化数据等等,因为它们比单纯的 IDE 平台更具交互性,所以它们被广泛用于以更具教学性的方式展示代码。(文件有点大,多试几次)
(二)安装numpy
(第一节安装过)
(三)安装matplotlib
(四)验证ipython是否安装成功
三、介绍ipython的技巧
(一)对于字典类型的数据ipython显示的比标准的python解释器更好
标准的python解释器
(二)ipython会提供自动补全的功能
(三)输出文档
(四)输出文件路径
timeit查看时间效率
quickref查看Python标准化的文版
(五)ipython notebook
os.listdir?显示Python的文档
(六)定义一个函数
(七)显示类名图片
(八)jupyter 的快捷键
四、numpy简介
(一)创建数组(先进入ipython环境)
一维数组
二维数组
np.arrange()返回数组
range()返回列表
reshape可以返回指定的数组,但是其返回的是引用的,不是拷贝的
建立全是1的三维数组
(二)数组的索引
一维数组的索引方法
二维数组的索引方法
选择data里所有大于10的数构成一个新数组
常用写法:
创建所有的偶数构成一个数组
矩阵加法
矩阵减法和乘法(逐个元素相乘)
矩阵内积
矩阵除法
矩阵开平方
矩阵转置
返回指定的数组
五、pandas快速入门
(一)ipython环境下的快速入门
(1)创建关键数据结构序列Series
(2)创建日期序列
(3)查看数据
查看列标签
查看列标签
查看值
查看基本统计数据
矩阵转置
通过列标签排序(升序)
降序
通过行标签排序
通过列排序
选择2到4行排列
通过行标签或列标签选择
访问表格特定的值
选择第一行
用布尔索引
用isin过滤数据
(4)修改数据
修改一列或一行
注意:列表长度匹配
(二)ipython notebook环境下的快速入门
按两次ctrl+c结束
(1)创建数据集
(2)制造数据的缺失项
添加一列
(3)处理空数据
部分赋值,丢弃,用默认值替换吗,判断数据集是否有空数据
求平均值
求累加值
(4)用行标签作为关键字的索引,一个表减去一个行向量。
(5)apply
(6)value_counts()
(7)矩阵合并
(八)分类统计(分组后按照一定规则进行计算)
(九)数据整形
(1)创建列表dateframe
(2)将行索引转换为列索引
将列索引转化为行索引
(十)数据透视
(1)构建列表以A和B 列为行索引,以C列为列索引
(2)当数据透视表有多个值时,求平均值,当透视表无值时,为NaN
(十一)时间序列
(1)创建600个以秒为单位的时间序列
创建0到500 的随机数,
对数据进行求平均值重新采样
(2)以季度为单位
转换成时间日期的格式输出
时间运算
(十二)数据可视化
(1)使用category数据;排序时以grade的值raw_grade排序。
(3)以raw_grade升序排序
(4)创建数据表
(5)对其求和
(6)画出数据
(十三)数据载入与保存
(1)创建数据
(2)写入磁盘
(3)读出数据
六、数据分析实例:分析MovieLens电影数据
(一) 下载数据包
(二)打印前5条记录
(三)导入评分数据和电影数据
显示评分数据表
显示电影数据表
(四)合并两个表两个表的外键(movie_id)存在一一对应关系
(五)输出所有用户id==1的用户
(六)数据透视:关心rating,针对某个电影所有女生和男生的评分求平均值
(七)看哪些电影男生女生的平均得分差异最大,按diff排序
(八)导出评分最多的电影,降序排列,选择前10个
(九)导出电影的平均评分最高的电影,排序,找出前20大
(十)找出评分多,且平均分高的电影
查看前十大热门电影的评分
前二十大高峰电影的评分人数
找出热度足够高的电影
(十一)导出热门电影的评分数据
七、pandas核心数据结构
(一)Series
Series是一维的带标签的数组,数组里面可以放任意的数据,包括整数,浮点数,字符串,object等
(1)创建
创建一个series,给指定索引
创建时,不给指定索引
用字典创建索引值
标量创建series:每个元素的值都相同
(2)特性
a、类ndarray对象(索引)
b、类dict对象
用字典增加一个元素
f不存在时返回0。
c、标签对齐操作
(二)DataFrame
DataFrame是一个二维带行标签和列标签的数组。可以把DataFrame想成一个 Excel表格或一个SQL数据库的表格,还可以看成是一个Series对象字典。它是Pandas里最常用的数据结构
(1)创建
指定行索引
指定列索引
由列表构成的字典数据创建:
注:Series构成的字典数据个数可以是相同也可以是不同的,list构成的字典数据个数必须是相同的
由列表创建:
列表里的元素是一个字典,此时可以指定行标签
指定列标签
字典包含元组和字典
注:Series的列索引只能是一列
(2)特性
a、列选择、增加、删除
选择列
选择行
相加
删除
增加列
添加列
pop方法:删除列
insert方法:插入列
b、assign做复制,原列表未发生改变。
引入函数:在assign 必须用lambda计算
链式的方法调用两次assign创建两列
c、索引和选择
选择列
选择行
选择多行
选出a列大于等于4的行
标签对齐
进行自动标签对齐:
dataFrame内部用的数据结构是numpy里的ndarray
(三)Panel
(1)概念
1、 Panel 是三维带标签的数组。实际上,Pandas的名称由来就是由Panel演进的,即pan(el)-da(a)Ss。Panel 比较少用,但依然是最重要的基础数据结构之一。
2、items: 坐标轴0,索引对应的元素是一个DataFrame
3、 major_ axis坐标轴1, DataFrame里的行标签
4、 minor_axis: 坐标轴2. DataFrame里的列标签
(2)创建
通过items访问DataFrame值
通过major_xs访问DataFrame的值
特点:行标签是两维标签
八、pandas基础运算
(一)重新索引
新增索引
填充数值
用前面的数据填充空值NaN
新增索引
空值设为0
拷贝值
新增列
method向前填充只对行有效,对列没有效
biff向后填充
丢弃数据
丢弃行
丢弃列(拷贝一份数据)
按列进行运算
按行运算
返回最大值和最小值(按列)
返回最大值和最小值(按行)
表格里的每个小数点只显示出后三位
排序
降序排序
排名:先出现的排名高
数据的唯一性
返回不重复的元素列表
判断元素是否在列表内