Python数据分析基础教程答案(python数据分析基础清华大学出版社

http://www.itjxue.com  2023-04-14 01:23  来源:未知  点击次数: 

python数据分析模块:numpy、pandas全解

一维数组情况:

二维数组情况:

3参数情况:

2参数情况:

1参数情况:

一维情况:

二维情况:

一维情况:

二维情况:

一维情况:

二维情况:第三个参蠢码拆数指定维度

只查看行数、或者列数

逗号隔开两个索引

某些行

某些列

可以看出append()函数在二维数组中添加元素,结果转为了一维数组。

那怎么保持二维数组呢?可以设置axis参数按行或者按列添加

可以看出先把二维数组降成了一维数组,再在索引为1的位置添加元素。

那么怎么保持在二维添加元素呢? 同样设置axis参数

也分按行和按列删除

标记缺失值: isnan()函数

补充缺失值:

同样axis参数可以指定拼接按行还是按列

2. hstack()函数:以水平堆叠的方式拼接数组

3. vstack()函数:以垂直堆叠的方式拼接数组

第二个参数还可以是数组,指定拆分的位置

hsplit()函数:横向拆成几个数组

vsplit()函数:纵向拆成几个数组

数组与数组之间的运算

数组与数值的运算

可以指定整个数组求和,还是按行或者按列

axis=0:每一列的元素求和

axis=1:每一行的元素求和

axis=0:每一列求均值

axis=1:每一行求均值

axis=0:每一列求最大值

axis=1:每一行求最大值

pandas有两个重要的数据结构对象:Series和DataFrame。

Series是创建一个一维数组对象,会自动生成行标签。

会自动生成行列标签

也可以用字典形式生成数据

在用字典生成数据的基础上,同时指定行标签

例如对下表的数据进行读取

4月是第四个表,我们应把sheet_name参数指定为3;因为索引是从0开始的。

可以看出read_excel()函数自动创建了一个DataFrame对象,同时自动把第一行数据当做列标签。

可以看出不给出header参数时,该参数默认为0。

header=1时结果如下:

header=None时结果如下:

index_col=0时,第0列为列标签

index_col=0时

usecols=[2]:指定第二列

指定多列

数据如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j1SHxY8y-1637655972909)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211114192949607.png)]

nrows=3时

head()函数中参数为空默认前5行

指定head(3)时如下

numpy模块也是shape

查看特定列的书库类型

特定列数据类型转换

先查看一下所有数据

与单行相比,结果显示的格式不一样了

iloc()挑选:

或者给出区间

挑选数据要么标签,要么索引挑选

或者

或者写成区间

标签挑选

或者索引挑选

先查看一下数据

或者用字典一对一修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a6QKIoie-1637655972912)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123110431201.png)]

isin()函数查看表中是否有该值

查看特定列是否有该值

可以看出上述代码并没有替换,那怎么替换呢?

末尾插入一列

指定插入到哪列

axis参数可以指定删除行还是删除列

指定标签删除

指定模喊索引删除

方法三

指定行标签删除

指定索引删除

方法三:

先查看所有数据

info()函数查看数据类型,还可以查看是否有缺失值

isnull()函数查看是否带枣有缺失值

在numpy模块中用isnan()函数

删除有缺失值的行

删除整行都为缺失值的行: 需要指定how参数

不同列的缺失值设置不同的填充值

默认保留第一个重复值所在的行,删除其他重复值所在的行

保留第一个重复值所在的行

保留最后一个重复值所在的行

是重复的就删除

降序如下

参数指定first时,表示在数据有重复值时,越先出现的数据排名越靠前

获取产品为单肩包的行数据

获取数量60的行数据

获取产品为单肩包 且 数量60 的行数据

获取产品为单肩包 或 数量60 的行数据

stack()函数转换成树形结构

how参数指定外连接

on参数指定按哪一列合并

concat()函数采用 全连接 的方式,没有的数设置为缺失值

重置行标签

效果与concat()一样

末尾添加行元素

指定列求和

指定列求均值

指定列求最值

获取单列的

corr()函数获取相关系数

获取指定列与其他列的相关系数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-46g9qgQw-1637655972913)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123135643804.png)]

groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。

分组后获取指定列的汇总情况

获取多列的汇总情况

获取多列的情况

ta = pd.read_excel(‘相关性分析.xlsx’)

print(data)

corr()函数获取相关系数

获取指定列与其他列的相关系数

[外链图片转存中…(img-46g9qgQw-1637655972913)]

groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。

分组后获取指定列的汇总情况

获取多列的汇总情况

获取多列的情况

Python数据分析(八):农粮组织数据集探索性分析(EDA)

这里我们用 FAO(Food and Agriculture Organization) 组织提供的数据集,练习一下如何利用python进行探索性数据分析。

我们先导入需要用到的包

接下来,加载数据集

看一下数据量,

看一下数据的信息,

我们先来看一下variable,variable_full这两列的信息,

看一下统计了多少国家,

看一下有多少个时间周期,

看一下时间周期有哪些,

我们看一下某一列某个指标的缺失值的个数,比如variable是total_area时缺失值的个数,

我们通过几个维度来进行数据的分析:

我们按照上面的处理继续,现在我们想统计一下对于一个时间周期来说,不同国家在这个周期内的变化情况,

我们也可以按照国家分类,查看某个国家在不同时期的变化,

我们还可以根据属性,查看不同国家在不同周期内的变化情况,

我们还可以给定国家和指标,查看这个国家在这个指标上的变化情况,

我们还有region(区域)没有查看,我们来看一下:

通过上图可以看出,区域太多,不便于观察,我们可以将一些区域进行合销启并。减少区域数量有助于模型评估,可以创建一个字典来查找新的,更简单的区域(亚洲,北美洲,南美洲,大洋洲)

我们来看一下数据变化,

紧接着上面的数据处理,我们重新导入一下包,这次有一些新包,

我们看一下水资源的情况,

通过上图可以看出只有一小部分国家报告了可利用的水资源总量,这些国家中只有极少数国家拥有最近一段时间的数据,我们将删除变量,因为这么少的数据点会导致很多问题。

接下来我们看一下全国降消信雨指数,

全国降雨在2002年以后不再报到,所以我们也删除这个数据,

我们单独拿出一个洲来进行分析,举例南美洲,我们来看一下数据的完整性,

我们也可以指定不同的指标,

接下来,我们使用 pandas_profiling 来对单变量以及多变量之间的关系进行统计一下,

这里我们要计算的是,比如

我们按照 rural_pop 从小到大进行排序亏桥如,发现的确有几个国家的农村人口是负数,

人口数目是不可能小于0,所以这说明数据有问题,存在脏数据,如果做分析预测时,要注意将这些脏数据处理一下。

接下来我们看一下偏度,我们规定,

正态分布的偏度应为零,负偏度表示左偏,正偏表示右偏。

偏度计算完后,我们计算一下峰度, 峰度也是一个正态分布,峰度不能为负,只能是正数 ,越大说明越陡峭,

接下来我们看一下,如果数据分布非常不均匀该怎么办呢,

上图是2013-2017年国家总人数的分布,通过上图我们发现,人口量少于200000(不考虑单位)的国家非常多,人口大于1200000的国家非常少,如果我们需要建模的话,这种数据我们是不能要的。这个时候我们应该怎么办呢?

通常,遇到这种情况,使用 log变换 将其变为正常。 对数变换 是数据变换的一种常用方式,数据变换的目的在于使数据的呈现方式接近我们所希望的前提假设,从而更好的进行统计推断。

接下来,我们用log转换一下,并看一下它的偏度和峰值,

可以看出偏度下降了很多,减少了倾斜。

可以发现峰度也下降了,接下来我们看一下经过log转换后的数据分布,

虽然数据还有一些偏度,但是明显好了很多,呈现的分布也比较标准。

首先我们先来看一下美国的人口总数随时间的变化,

接下来,我们查看北美洲每个国家人口总数随着时间的变化,

这个时候我们发现,一些国家由于人口数量本身就少,所以整个图像显示的不明显,我们可以改变一下参照指标,那我们通过什么标准化?我们可以选择一个国家的最小、平均、中位数、最大值...或任何其他位置。那我们选择最小值,这样我们就能看到每个国家的起始人口上的增长。

我们也可以用热度图来展示,用颜色的深浅来比较大小关系,

接下来我们分析一下水资源的分布情况,

我们可以进行一下log转换,

我们用热度图画一下,

连续值可以画成散点图,方便观看,

我们来看一下随着季节变化,人均GDP的变化情况,

相关程度:

相关度量两个变量之间的线性关系的强度,我们可以用相关性来识别变量。

现在我们单独拿出来一个指标分析是什么因素与人均GDP的变化有关系,正相关就是积极影响,负相关就是消极影响。

当我们在画图的时候也可以考虑一下利用bined设置一下区间,比如说连续值我们可以分成几个区间进行分析,这里我们以人均GDP的数量来进行分析,我们可以将人均GDP的数据映射到不同的区间,比如人均GDP比较低,比较落后的国家,以及人均GDP比较高,比较发达的国家,这个也是我们经常需要的操作,

做一下log变换,这里是25个bin

我们指定一下分割的标准,

我们还可以看一下人均GDP较低,落后国家的内部数据,下面我们看一下内部数据分布情况,用boxplot进行画图,

对于这部分的分布,我们还可以统计看一下其他指标,如下图所示,我们还可以看一下洪水的统计信息,

python数据分析与应用-Python数据分析与应用 PDF 内部全资料版

给大家带来的一篇关于Python数据相关的电子书资源,介绍了关于Python方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小281 MB,黄红梅 张良均编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.8。

内容介绍

目录

第1章 Python数据分析概述 1

任务1.1 认识数据分析 1

1.1.1 掌握数据分析的概念 2

1.1.2 掌握数据分析的流程 2

1.1.3 了解数据分析应用场景 4

任务1.2 熟悉Python数据分析的工具 5

1.2.1 了解数据分析常用工具 6

1.2.2 了解Python数据分析的优势 7

1.2.3 了解Python数据分析常用类库 7

任务1.3 安装历友Python的Anaconda发行版 9

1.3.1 了解Python的Anaconda发行版 9

1.3.2 在Windows系统中安装Anaconda 9

1.3.3 在Linux系统中安装Anaconda 12

任务1.4 掌握Jupyter Notebook常用功能 14

1.4.1 掌握Jupyter Notebook的基本功能 14

1.4.2 掌握Jupyter Notebook的高 级功能 16

小结 19

课后习题 19

第2章 NumPy数值计算基础 21

任务2.1 掌握NumPy数组对象ndarray 21

2.1.1 创建数组对象 21

2.1.2 生成随机数 27

2.1.3 通过索引访问数组 29

2.1.4 变换数组的形态 31

任务2.2 掌握NumPy矩阵与通用函数 34

2.2.1 创建NumPy矩阵 34

2.2.2 掌握ufunc函数 37

任务2.3 利用NumPy进行统计分析 41

2.3.1 读/写文件 41

2.3.2 使用函数进行简单的统计分析 44

2.3.3 任务实现 48

小结 50

实训 50

实训1 创建数组并进行运算 50

实训2 创建一个国际象棋的棋盘 50

课后习题 51

第禅塌3章 Matplotlib数据可视化基础 52

任务3.1 掌握绘图基础语法与常用参数 52

3.1.1 掌握pyplot基础语法 53

3.1.2 设置pyplot的动态rc参数 56

任务3.2 分析特征间的关系 59

3.2.1 绘制散点图 59

3.2.2 绘制折线图 62

3.2.3 任务实现 65

任务3.3 分析特征内部数据分布与分散状况 68

3.3.1 绘制直方图 68

3.3.2 绘制饼图 70

3.3.3 绘制箱线图 71

3.3.4 任务实现 73

小结 77

实训 78

实训1 分析1996 2015年人口数据特征间的关系 78

实训2 分析1996 2015年人口数据各个特征的分布与分散状况 78

课后习题 79

第4章 pandas统计分析基础 80

任务4.1 读/写不同数据源的数据 80

4.1.1 读/写数据库数据 80

4.1.2 读/写文本文件 83

4.1.3 读/写Excel文件 87

4.1.4 任务实现 88

任务4.2 掌握DataFrame的常用操作 89

4.2.1 查看DataFrame的常用属性 89

4.2.2 查改增贺烂圆删DataFrame数据 91

4.2.3 描述分析DataFrame数据 101

4.2.4 任务实现 104

任务4.3 转换与处理时间序列数据 107

4.3.1 转换字符串时间为标准时间 107

4.3.2 提取时间序列数据信息 109

4.3.3 加减时间数据 110

4.3.4 任务实现 111

任务4.4 使用分组聚合进行组内计算 113

4.4.1 使用groupby方法拆分数据 114

4.4.2 使用agg方法聚合数据 116

4.4.3 使用apply方法聚合数据 119

4.4.4 使用transform方法聚合数据 121

4.4.5 任务实现 121

任务4.5 创建透视表与交叉表 123

4.5.1 使用pivot_table函数创建透视表 123

4.5.2 使用crosstab函数创建交叉表 127

4.5.3 任务实现 128

小结 130

实训 130

实训1 读取并查看P2P网络贷款数据主表的基本信息 130

实训2 提取用户信息更新表和登录信息表的时间信息 130

实训3 使用分组聚合方法进一步分析用户信息更新表和登录信息表 131

实训4 对用户信息更新表和登录信息表进行长宽表转换 131

课后习题 131

第5章 使用pandas进行数据预处理 133

任务5.1 合并数据 133

5.1.1 堆叠合并数据 133

5.1.2 主键合并数据 136

5.1.3 重叠合并数据 139

5.1.4 任务实现 140

任务5.2 清洗数据 141

5.2.1 检测与处理重复值 141

5.2.2 检测与处理缺失值 146

5.2.3 检测与处理异常值 149

5.2.4 任务实现 152

任务5.3 标准化数据 154

5.3.1 离差标准化数据 154

5.3.2 标准差标准化数据 155

5.3.3 小数定标标准化数据 156

5.3.4 任务实现 157

任务5.4 转换数据 158

5.4.1 哑变量处理类别型数据 158

5.4.2 离散化连续型数据 160

5.4.3 任务实现 162

小结 163

实训 164

实训1 插补用户用电量数据缺失值 164

实训2 合并线损、用电量趋势与线路告警数据 164

实训3 标准化建模专家样本数据 164

课后习题 165

第6章 使用scikit-learn构建模型 167

任务6.1 使用sklearn转换器处理数据 167

6.1.1 加载datasets模块中的数据集 167

6.1.2 将数据集划分为训练集和测试集 170

6.1.3 使用sklearn转换器进行数据预处理与降维 172

6.1.4 任务实现 174

任务6.2 构建并评价聚类模型 176

6.2.1 使用sklearn估计器构建聚类模型 176

6.2.2 评价聚类模型 179

6.2.3 任务实现 182

任务6.3 构建并评价分类模型 183

6.3.1 使用sklearn估计器构建分类模型 183

6.3.2 评价分类模型 186

6.3.3 任务实现 188

任务6.4 构建并评价回归模型 190

6.4.1 使用sklearn估计器构建线性回归模型 190

6.4.2 评价回归模型 193

6.4.3 任务实现 194

小结 196

实训 196

实训1 使用sklearn处理wine和wine_quality数据集 196

实训2 构建基于wine数据集的K-Means聚类模型 196

实训3 构建基于wine数据集的SVM分类模型 197

实训4 构建基于wine_quality数据集的回归模型 197

课后习题 198

第7章 航空公司客户价值分析 199

任务7.1 了解航空公司现状与客户价值分析 199

7.1.1 了解航空公司现状 200

7.1.2 认识客户价值分析 201

7.1.3 熟悉航空客户价值分析的步骤与流程 201

任务7.2 预处理航空客户数据 202

7.2.1 处理数据缺失值与异常值 202

7.2.2 构建航空客户价值分析关键特征 202

7.2.3 标准化LRFMC模型的5个特征 206

7.2.4 任务实现 207

任务7.3 使用K-Means算法进行客户分群 209

7.3.1 了解K-Means聚类算法 209

7.3.2 分析聚类结果 210

7.3.3 模型应用 213

7.3.4 任务实现 214

小结 215

实训 215

实训1 处理信用卡数据异常值 215

实训2 构造信用卡客户风险评价关键特征 217

实训3 构建K-Means聚类模型 218

课后习题 218

第8章 财政收入预测分析 220

任务8.1 了解财政收入预测的背景与方法 220

8.1.1 分析财政收入预测背景 220

8.1.2 了解财政收入预测的方法 222

8.1.3 熟悉财政收入预测的步骤与流程 223

任务8.2 分析财政收入数据特征的相关性 223

8.2.1 了解相关性分析 223

8.2.2 分析计算结果 224

8.2.3 任务实现 225

任务8.3 使用Lasso回归选取财政收入预测的关键特征 225

8.3.1 了解Lasso回归方法 226

8.3.2 分析Lasso回归结果 227

8.3.3 任务实现 227

任务8.4 使用灰色预测和SVR构建财政收入预测模型 228

8.4.1 了解灰色预测算法 228

8.4.2 了解SVR算法 229

8.4.3 分析预测结果 232

8.4.4 任务实现 234

小结 236

实训 236

实训1 求取企业所得税各特征间的相关系数 236

实训2 选取企业所得税预测关键特征 237

实训3 构建企业所得税预测模型 237

课后习题 237

第9章 家用热水器用户行为分析与事件识别 239

任务9.1 了解家用热水器用户行为分析的背景与步骤 239

9.1.1 分析家用热水器行业现状 240

9.1.2 了解热水器采集数据基本情况 240

9.1.3 熟悉家用热水器用户行为分析的步骤与流程 241

任务9.2 预处理热水器用户用水数据 242

9.2.1 删除冗余特征 242

9.2.2 划分用水事件 243

9.2.3 确定单次用水事件时长阈值 244

9.2.4 任务实现 246

任务9.3 构建用水行为特征并筛选用水事件 247

9.3.1 构建用水时长与频率特征 248

9.3.2 构建用水量与波动特征 249

9.3.3 筛选候选洗浴事件 250

9.3.4 任务实现 251

任务9.4 构建行为事件分析的BP神经网络模型 255

9.4.1 了解BP神经网络算法原理 255

9.4.2 构建模型 259

9.4.3 评估模型 260

9.4.4 任务实现 260

小结 263

实训 263

实训1 清洗运营商客户数据 263

实训2 筛选客户运营商数据 264

实训3 构建神经网络预测模型 265

课后习题 265

附录A 267

附录B 270

参考文献 295

学习笔记

Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。 Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等 。 定义 (推荐学习:Python视频教程) 用户可以通过电子邮件,Dropbox,GitHub 和 Jupyter Notebook Viewer,将 Jupyter Notebook 分享给其他人。 在Jupyter Notebook 中,代码可以实时的生成图像,视频,LaTeX和JavaScript。 使用 数据挖掘领域中最热门的比赛 Kaggle 里的资料都是Jupyter 格式 。 架构 Jupyter组件 Jupyter包含以下组件: Jupyter Notebook 和 ……

本文实例讲述了Python实现的微信好友数据分析功能。分享给大家供大家参考,具体如下: 这里主要利用python对个人微信好友进行分析并把结果输出到一个html文档当中,主要用到的python包为 itchat , pandas , pyecharts 等 1、安装itchat 微信的python sdk,用来获取个人好友关系。获取的代码 如下: import itchatimport pandas as pdfrom pyecharts import Geo, Baritchat.login()friends = itchat.get_friends(update=True)[0:]def User2dict(User): User_dict = {} User_dict["NickName"] = User["NickName"] if User["NickName"] else "NaN" User_dict["City"] = User["City"] if User["City"] else "NaN" User_dict["Sex"] = User["Sex"] if User["Sex"] else 0 User_dict["Signature"] = User["Signature"] if User["Signature"] else "NaN" ……

基于微信开放的个人号接口python库itchat,实现对微信好友的获取,并对省份、性别、微信签名做数据分析。 效果: 直接上代码,建三个空文本文件stopwords.txt,newdit.txt、unionWords.txt,下载字体simhei.ttf或删除字体要求的代码,就可以直接运行。 #wxfriends.py 2018-07-09import itchatimport sysimport pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']#绘图时可以显示中文plt.rcParams['axes.unicode_minus']=False#绘图时可以显示中文import jiebaimport jieba.posseg as psegfrom scipy.misc import imreadfrom wordcloud import WordCloudfrom os import path#解决编码问题non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd) #获取好友信息def getFriends():……

Python数据分析之双色球基于线性回归算法预测下期中奖结果示例

本文实例讲述了Python数据分析之双色球基于线性回归算法预测下期中奖结果。分享给大家供大家参考,具体如下: 前面讲述了关于双色球的各种算法,这里将进行下期双色球号码的预测,想想有些小激动啊。 代码中使用了线性回归算法,这个场景使用这个算法,预测效果一般,各位可以考虑使用其他算法尝试结果。 发现之前有很多代码都是重复的工作,为了让代码看的更优雅,定义了函数,去调用,顿时高大上了 #!/usr/bin/python# -*- coding:UTF-8 -*-#导入需要的包import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport operatorfrom sklearn import datasets,linear_modelfrom sklearn.linear_model import LogisticRegression#读取文件d……

以上就是本次介绍的Python数据电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对鬼鬼的支持。

注·获取方式:私信(666)

(责任编辑:IT教学网)

更多

推荐网页制作视频教程文章