Python数据处理
文章平均质量分 75
透过 Python 让读者有能力处理数据,读者掌握数据表达的重要性,进而将数据以更浅显易懂的方式,透过视觉的方式来呈现数据所代表的特性。
Yehchitsai
厚积薄发
展开
-
5-04 无伺服器环境搭建
5.3 无伺服器环境搭建无伺服器 (Serverless) 是一个新兴的技术,是一个基于函数既服务 (Function as a Service, FaaS) 实作的一个架构,让开发者可以更专注在开发功能,改变了开发人员构建和交付软件的方式,它将基础设施和代码分离来简化开发过程,降低成本并提升效率。无伺服器平台提供各式接口,可以是网页服务形式或是 API 接口,允许开发人员运行代码函数并返回每个函数的结果,这些接口可以用作其他函数的输入,从而提供相关函数的触发事件。以下就介绍亚马逊 AWS 所提供的无伺原创 2022-04-19 09:31:35 · 529 阅读 · 0 评论 -
5-03 Container 环境搭建
5.3 Container 环境搭建使用容器 (Container) 的主要原因,有以下几点:比较复杂的项目,Python 可能还需要调用第三方非 Python 的库,甚至是跟一些服务器交互,因此就会遇到操作系统版本不同、环境变量设定没设定或是配置文件没设定正确等,而造成整个项目无法正常的运行起来,会花费很多的时间在调参而造成工作的效率变差。如果在程序的撰写过程中需要有多个测试环境,例如测试不同版本的服务器是否能在我们撰写的代码上正常的执行。如果把这个服务器直接安装在自已的操作系统环境上,需要换版本原创 2022-04-19 09:23:07 · 1122 阅读 · 0 评论 -
5-02 虚拟环境搭建
5.2 虚拟环境搭建在介绍 Python 虚拟环境搭建之前先介绍什么是 PEP,PEP 是 Python 增强提案 (Python Enhancement Proposal) 的缩写。Python 社区通过 PEP 来给 Python 语言建言献策,主要是通过邮件列表讨论问题、提议、计划等,经过了部分核心开发者审阅和认可,最终形成的正式文档,起到了对外公示的作用。而 PEP 1 中给出了官方的 PEP 的定义,给出了 PEP 的三种类型,分别为:标准跟踪 (Standards Track) 的PEP、信原创 2022-04-19 09:18:23 · 423 阅读 · 0 评论 -
5-01 Python 项目移植-Windows 执行文件
当使用者完成一个 Python 项目的时后,要将这个代码移交给他人可能会遇到的问题有以下三种情况:Python 解释器:有无安装或版本不同。相关包: 代码中有需要使用的包。操作系统: Windows, Mac OS, Linux等不同操作环境。如果对方是一般使用者连编程都不会的使用者,那肯定是不会安装 Python 解释器的,所以对这样的用户而言,要递送一个 Python 开发的项目,肯定是有困难的,所以最好的方法就是将 Python 代码打包成 Windows 可以直接运行的执行文件 (.ex原创 2022-04-19 08:34:49 · 988 阅读 · 0 评论 -
4-04 Seaborn
4.4 SeabornSeaborn 是一个基于 matplotlib 并与 Pandas 数据结构紧密结合的 Python 数据可视化库。它提供了一个高级应用编程接口,让使用者专注于绘图的不同元素的含义,而不是如何绘制它们的细节。而 Seaborn 是开放源码,若想查看代码或报告错误,可以访问 GitHub 存储库 (https://github.com/mwaskom/seaborn)。一般的支持问题大多可以在国外的 stackoverflow 或 国内的 CSDN 找到解答。Seaborn 中有幾原创 2022-04-19 08:14:22 · 305 阅读 · 0 评论 -
4-03-2 Pandas - 散点图、安德鲁斯曲线
相互关系-散点图散点图是研究两个变量之间关系的经典和基础图,当有多组数据时,也可以用不同的颜色来显示每个组,以下使用美国中西部各州 (midwest.csv) 的人口分布案例来观察,首先先依类别来分群,共 16 的类别 (category),给每个类别不同的颜色,显示 midwild 这个数据集的信息,共有 437 笔数据, 28 个栏位,接着以位于贫穷线以下的比例 (percbelowpoverty, percent below poverty) 与高中毕业生的比例 (perchsd, the perc原创 2022-04-18 10:44:02 · 2899 阅读 · 0 评论 -
4-03-1 Pandas - 折线图、柱状图、直方图、箱型图
4.3 Pandas 内置可视化方法Pandas 本身也提供几个简单的数据可视化图形,可以完成简单的变化-折线图、等级-柱状图、分布-直方图、箱型图、相互关系-散点图、分群-安德鲁斯曲线等。变化-折线图import numpy as npimport pandas as pd # 随机找出 4 笔 7 天的温度变化df = pd.DataFrame(np.random.randint(20, high = 35, size=(7,4)),columns=list('abcd'),index=原创 2022-04-18 10:41:38 · 3212 阅读 · 0 评论 -
4-02-3 Matplotlib 散点图、发散型条形图、饼图
接下来要讨论的是在数据可视化的过程,我们希望透过图表来表达数据的特色,一个良好的图表应该具备以下特色:提供准确、有需求的信息,不歪曲事实。设计简单,获取时不会太费力。美感是为了支持这些信息,而不是为了掩盖这些信息;不要提供太过丰富的信息与太过复杂的结构。图形可以分成以下的种类相互关系 (Correlation) :用来显示不同变量之间的相互关系,有以下这些图-散点图 (Scatter plot) 、带边界的气泡图 (Bubble plot with Encircling) 、带有最佳拟合线原创 2022-04-18 10:35:30 · 1689 阅读 · 0 评论 -
4-02-2 Matplotlib 图片属性
线条颜色(color)、线型(linestyle)、点标记符(marker)import matplotlib.pyplot as plt # 创建一个 figure 对象,相当于一个空白的画布figure = plt.figure() # 在画布上添加一个坐标系axes1 = figure.add_subplot(1, 1, 1) # 准备画图的数据x1 = [1, 2, 3, 4, 5, 6, 7]y1 = [21, 27, 29, 32, 29, 28, 35]y2 =原创 2022-04-18 10:32:15 · 236 阅读 · 0 评论 -
4-02-1 Matplotlib 中文化
Matplotlib 中文化但是这样的画面并不适合中文使用者,所以接下来试着将标题与标签输入中文,步骤如下步骤 1. 下载需要的字体文件:以黑体(SimHei)为例,下载对应的字体文件 SimHei.ttf ,可以试着找自己电脑内是否有这个字体。步骤 2. 将下载的字体文件放到指定目录下:执行以下代码,获取字体文件路径信息,每个人会根据自己的安装环境不同,而有所不同。import matplotlib print(matplotlib.matplotlib_fname()) 输出结果如原创 2022-04-18 10:28:46 · 629 阅读 · 0 评论 -
4-02 Matplotlib
4.2 Matplotlib本节介绍如何使用 matplotlib,最简单方法是在 Jupyter notebook 进行交互式绘图。在 Visual Studio Code 画面中按下 Ctrl+Shift+P 打开命令面板 (Command Palette) ,接着键入 Jupyter: Create New Jupyter NoteBook 在命令进行搜索,然后选择该命令,Visual Studio Code 会开启一个空白的 Jupyter Notebook 画面,在 Jupyter noteb原创 2022-04-18 10:24:19 · 177 阅读 · 0 评论 -
4-01 可视化包介绍、安装与加载
4.1 可视化包介绍、安装与加载数据可视化是数据分析中最重要的工作之一,透过图像化可以帮助使用者更容易找到一些数据的特性,Python 有许多库可以进行静态或动态的数据可视化,而本章将关注于 matplotlib 库, pandas相关内置视觉化的函数以及 Seaborn 库。介绍一下在 Python 的绘图基本原理,绘图需要明确三个基本概念:画布 (Figure):透过画布来承载图像,一个画布可以切割成多个子图表 (subplot)。坐标系 (Axes):通过坐标系可以标定画图的区域;坐标轴原创 2022-04-18 10:20:11 · 244 阅读 · 0 评论 -
3-03-2 泰坦尼克号竞赛-数据替换与合并
3.3.2 数据替换与合并将 ‘Cabin’ 此栏删除或是找出缺失值并替换,以下实例将先演示找出缺失值,用 inplace()函数替换成 ‘S’ 这个并未被使用过的舱位。实例# 找出缺失值并替换, inplace 设为 True 会直接修改数据集,如果不要修改的话,可以设为 False,并回传替换结果亦可df['Cabin'].replace(to_replace=np.NaN, value='S', inplace=True)df[['Cabin']].groupby(['Cabin'],sor原创 2022-04-18 10:11:59 · 186 阅读 · 0 评论 -
Python数据处理-文章目录
Python数据处理透过 Python 让读者有能力处理数据,读者掌握数据表达的重要性,进而将数据以更浅显易懂的方式,透过视觉的方式来呈现数据所代表的特性。第 1 章Python 基础1-01 Python 安装与说明1-01-1 python 启动器 py1-01-2 安装 VS Code for Python1-02 基础语法1-02-1 数字、注解、变量与程序区块1-02-2 Python 字符串1-03 Python 基本数据类型1-03-1 Python 集合1-04 Pyt原创 2022-04-18 10:04:55 · 2925 阅读 · 0 评论 -
3-03-1 泰坦尼克号竞赛 - 数据过滤
3.3 数据清洗与合并数据预处理包含了数据清洗 (data cleansing) 与特征工程 (feature engineering) ,本节主要介绍的是数据清洗部份,主要目的是将原始数据转换成整洁的、组织合理的形式以供后续的特征工程使用。而数据清洗的工作内容很多,举例来说:基础运算 (basic) - 选择、过滤、删除重复项。取样 (Sampling) - 基于绝对、相对或是概率。数据划分 (Data Partitioning) - 将数据集划分为训练、验证、测试数据集。装箱 (Binnin原创 2022-04-18 09:25:58 · 529 阅读 · 0 评论 -
3-02-3 存储与加载 Excel 文件
存储与加载 Excel 文件read_excel/to_excel() 函数是 pandas 用来存储与加载 Excel 文件的方法,但需要调用 Python 的 xlrd 模块来读取或写入 Excel 2003 (.xls) 版的文件或是用 openpyxl 模块来存取 Excel 2007+ (.xlsx) 版的文件。因此在使用这些函数前需要先安装 openpyxl 与 xlrd 模块。图 3-2-2 安装存取 Excel 所需的包将上例中的实例透过 to_excel() 函数写入 Excel原创 2022-04-17 15:34:17 · 508 阅读 · 0 评论 -
3-02-2 存储与加载 JSON 文件
存储与加载 JSON 文件JSON (JavaScript Object Notation) 是一种基于 JavaScript 语法子集的开放标准数据交换格式 ,采用完全独立于编程语言的文本格式,易于阅读编写和机器解析生成,并有效地提升网络传输效率。JSON 语法规则中,以键/值对 (key/value pair) 的方式用来保存对象,键/值对组合中的键名写在前面并用双引号 “” 包裹,使用冒号 : 分隔,然后紧接着值,而对象和数组是比较常用的两种数据类型:花括号保存对象 - {“obj” : ‘v原创 2022-04-17 15:30:03 · 365 阅读 · 0 评论 -
3-02-1 数据加载CSV
3.2 数据加载与存储不管是大数据分析或是机器学习,第一个步骤都是将原始数据加载到系统中,然而,原始数据的形式有很多种,可能是日志文件、数据集文件、网页开放数据或是数据库等。 pandas 的加载与存储 API 是一组 reader/writer 函数,比如 pandas.read_csv() 函数,可以读取 CSV 格式的文件并返回 pandas 的 DataFrame 对象;相应的 write 函数是像 DataFrame.to_csv() 一样的函数。下面是一个方法列表,包含了这里面的所有 read原创 2022-04-17 15:26:13 · 867 阅读 · 0 评论 -
3-01-3 数据统计
3.1.3 数据统计函数元素及描述amin数组中的元素沿指定轴的最小值amax数组中的元素沿指定轴的最大值ptp计算数组中元素最大值与最小值的差percentile百分位数median数组中元素的中位数mean数组中元素的算术平均值std数组中元素的标准差var数组中元素的方差amin() 用于计算数组中的元素沿指定轴的最小值。amax() 用于计算数组中的元素沿指定轴的最大值。实例import numpy as n原创 2022-04-17 15:20:09 · 283 阅读 · 0 评论 -
3-01-2 数据操作
3.1.2 数据操作面对如此多样与多量的数据,本小节介绍一些常见的数据操作方法,有助于面对数据时,可以快速并准确的的处理数据,主要的操作所使用的包是第二章所介绍的 Numpy。广播(Broadcast)numpy 可以利用广播 (Broadcast) 这个方法对不同形状(shape)的数组进行数值计算的方式,比方说向量与标量的算术运算。实例import numpy as np s = 10v = np.array([1,2,3,4]) print(v + s) # 输出结果如下:原创 2022-04-17 15:17:16 · 318 阅读 · 0 评论 -
3-01-1 数据结构
3.1.1 数据结构在介绍数据的处理之前,先理解一下在机器学习领域,数据科学家是如何看待数据的,数据可以分成标量 (Scalar)、向量 (Vector)、矩阵 (Matrix)、张量 (Tensor)。简单来说,0 维的张量就是标量,1 维的张量就是向量,2 维的张量就是矩阵, 3 维以上的张量则统一称为张量。以下使用 NumPy 为例来创建向量、矩阵、张量,因为标量是单纯的数据,所以直接指定即可。实例# 标量a=1# 向量import numpy as np# 创建一个向量vector原创 2022-04-17 15:10:39 · 515 阅读 · 0 评论 -
3-01 数据处理
第 3 章 数据处理学习数据处理的目标之一就是在进行任何进阶运算之前,如数据采矿、机器学习或是深度学习,都必须先将数据进行预处理,以机器学习为例,机器处理的流程为:数据收集 (Data Preparation)数据预处理 (Data Preprocessing)探索性數據分析 (Exploratory Data Analysis, EDA)模型建立 (Model Building)模型评估 (Model Validation)模型运行 (Model Execution)模型部署与集成 (D原创 2022-04-17 15:08:16 · 439 阅读 · 0 评论 -
2-05 DataFrame 操作
2.5 DataFrame 操作DataFrame 是一种二维的数据结构,接近于 EXCEL 或者数据库表格的形式。它的竖行称之为 columns,就是先前的列,可以直接对应成跟前面的 Series ;先前的行,称之为 索引 (index),也就是说可以通过 columns 和 index 来确定一个元素的位置。底下实例透过 字典 (dictionary) 结构来创建一个 DataFrame,字典的键 (key)(“UserName”, “Age”, “Sex”, “Salary”)就是 DataFram原创 2022-04-17 08:48:06 · 487 阅读 · 0 评论 -
2-04 Series 操作
2.4 Series 操作Pandas 主要提供的数据结构为:Series:一维数组,与 Numpy 中的一维数组 (array) 类似,二者与 Python 基本的数据结构列表 (List) 也很相近,其区别是:List 和 Series 中的元素可以是不同的数据类型,而 Array 中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。Time - Series:以时间为索引的 Series。DataFrame:二维的表格型数据结构。很多功能与 R 中的 data.frame原创 2022-04-16 09:09:13 · 303 阅读 · 0 评论 -
2-03 Pandas 介绍、安装与加载
介绍完 NumPy 可以体会到 NumPy 对数组的强大处理及运算能力,在进行数据分析之前,还有很多事前准备工作要完成,比方读取数据,指的是从不同的媒介或是档案格式来获得数据;清洗数据,将得到的数据进行筛选,因为有些数据栏位信息不足,如个人信息中缺少性别数据;缺乏数据,如没有填写年龄等等,对于这样的处理能力并非是 NumPy 所擅长的工作,这一小节就是要介绍这样的工具包 - Pandas。Pandas 最初由 AQR Capital Management 于 2008 年 开发,并于 2009 年底开源出原创 2022-04-16 08:56:05 · 727 阅读 · 0 评论 -
2-02-3 NumPy 切片和索引
NumPy 切片和索引在 1-03 Python 基本数据类型 有介绍过 Python 基本的索引与切片,不过主要是针对列表,本节主要针对的是 NumPy 的切片和索引。以下实例是通过冒号分隔切片参数 start:stop:step 来进行切片操作。实例import numpy as np a = np.arange(10) b = a[2:7:2] # 从索引 2 开始到索引 7 停止,间隔为 2print(b) 输出结果为:[2 4 6]多维数组同样适用上述索引提取原创 2022-04-16 08:50:09 · 199 阅读 · 0 评论 -
2-02-2 NumPy 创建 ndarray 对象
NumPy 创建 ndarraynumpy.array() 方法用来创建一个指定对象的 ndarray 数组。语法与参数numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)名称描述object数组或嵌套的数列dtype数组元素的数据类型,可选copy对象是否需要复制,可选order有 “C” 和 “F” 两个选项,分别代表,行优先和原创 2022-04-16 08:37:23 · 477 阅读 · 0 评论 -
2-02-1 NumPy 数据类型
NumPy 数据类型NumPy 支持的数据类型比 Python 内置的类型要多,下表列举了常用 NumPy 基本类型。表 2.2.1 NumPy 支持的数据类型名称描述bool布尔型数据类型(True 或者 False)int默认的整数类型(类似于 C 语言中的 long,int32 或 int64)int8字节(-128 to 127)int16整数(-32768 to 32767)int32整数(-2147483648 to 214748364原创 2022-04-16 08:27:29 · 346 阅读 · 0 评论 -
2-01 NumPy 介绍、安装与加载
2.1 NumPy 介绍、安装与加载NumPy 是 Numerical Python 的缩写,NumPy 为开放源代码并且由许多协作者共同维护开发,是 Python 语言的一个扩展程序库,支持机器学习中常用的数据结构,如多维度数组、向量 (vector)、矩阵 (matrice)、 张量(tensor)等,进行高效的操作,也针对数组运算提供大量的数学函数库。NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:一个强大的 N 维数组对象 ndarray广播功能函数整合 C/C++/F原创 2022-04-16 07:32:30 · 1969 阅读 · 0 评论 -
1-05-2 lambda 与模块
lambda 表达式lambda表达式的作用:使用 lambda 就可以省下定义函数过程。对于一些比较抽象并且整个程序执行下来只需要调用一两次的函数,使用 lambda 就不需要考虑命名的问题了。简化代码,提高可读性。可以用 lambda 关键字来创建一个简单的匿名函数。这个函数返回两个参数的和:lambda a, b: a+blambda 函数可以在需要函数对象的任何地方使用。它们在语法上限于单个表达式。从语义上来说,它们只是正常函数定义的语法。与嵌套函数定义一样,lambda 函数可以原创 2022-04-16 07:23:11 · 190 阅读 · 0 评论 -
1-05-1 内部函数与闭包
内部函数在函数内部又有定义函数,内部的函数称之为内部函数。# 使用内部函数时需要注意缩进def OuterFun(): print('...函数:OuterFun 被调用...') def innerFun(): print('...函数:innerFun 被调用...') # innerFun 只能在 OuterFun 中被调用 innerFun() OuterFun()--------------------原创 2022-04-16 07:23:32 · 216 阅读 · 0 评论 -
1-05 Python 函数与模块
1.5 函数与模块定义函数我们可以创建一个加总的函数 sumab(),关键字 def 引入一个函数定义,它必须后跟函数名称和带括号的形式参数列表。构成函数体的语句从下一行开始,并且必须缩进。chap1-5-1-func.pydef sumab(a,b): return a+bprint(sumab(10,12))print(sumab)sumx = sumabprint(sumx(20,22))print(sumx)-------------------------------原创 2022-04-16 07:22:24 · 174 阅读 · 0 评论 -
1-04 Python 分支控制
1.4 分支控制if 语句可能最为人所熟知的编程语句就是 if 语句了。例如chap1-4-1-if.pyx = int(input("请输入一个整数: "))if x < 0: x = 0 print('负数改为 0')elif x == 0: print('0')elif x == 1: print('1')else: print('比 1 大')可以有零个或多个 elif 部分,以及一个可选的 else 部分。 关键字 ‘elif’ 是原创 2022-04-15 19:16:12 · 219 阅读 · 0 评论 -
1-03-1 Python 集合
集合是由不重复元素组成的无序的集,它的基本用法包括成员检测和消除重复元素。原创 2022-04-15 19:13:41 · 350 阅读 · 0 评论 -
1-03 Python 基本数据类型
Python 中可以通过组合一些值,来得到多种复合数据类型。其中最常用的是列表 (list)、字典 (dictionary)、元组 (tuple)。原创 2022-04-15 19:06:10 · 366 阅读 · 0 评论 -
Python 字符串的不可修改 (immutable)
Python 中的字符串不能被修改 (immutable),因此,指向字符串的某个索引位置赋值会产生一个错误;如果需要一个不同的字符串,应当新建一个;内建函数 len() 返回一个字符串的长度。>>> # 字符串不能被修改>>>> word = 'Python'>>> word[0] = 'J'Traceback (most recent call last): File "<stdin>", line 1, in <原创 2022-04-15 15:43:13 · 1225 阅读 · 0 评论 -
1-02-2 Python 字符串
字符串Python 可以操作字符串,字符串有多种形式,可以使用单引号(’…’)或双引号("…")都可以获得同样的结果。反斜杠 \ 可以用来转义, print() 函数会生成可读性更强的输出,即略去两边的引号,并且打印出经过转义的特殊字符。>>> str1 = 'Hello World, '>>> str2 = "World Hello, ">>> str3 = "I'm fine. ">>> str4 = 'I\'m fine原创 2022-04-15 10:21:37 · 489 阅读 · 0 评论 -
1-02-1 数字、注解、变量与程序区块
数字解释器就像一个简单的计算器一样,可以在里面输入一个表达式然后它会计算出答案。表达式的语法很直接,运算符 +、-、*、/ 的用法和其他大部分语言一样(比如 Java 或是者 C 语言),括号 () 用来分组。比如:>>> 2 + 24>>> 50 - 5*620>>> (50 - 5*6) / 45.0>>> 8 / 5 1.6除法运算 (/) 永远返回浮点数类型 (floor type)。如果要做浮点数除法 (原创 2022-04-15 10:18:42 · 203 阅读 · 0 评论 -
1-02 基础语法
1.2 基础语法在说明 Python 基础语法前,先说明一下 Python 的运作原理,要运行 Python 源代码,必须要有 Python 解释器,透过 Python 解释器来解释源代码的意思并运行,而 Python 解释器可以透过两种不同的方式来接收源代码,一种是传入参数 (pass parameters) 的形式;另一种则是交互模式 (interactive mode),可以参考以下范例说明。# 检视源代码D:\czcit\py>more hello.pymsg = "Hello Wor原创 2022-04-15 10:13:50 · 286 阅读 · 0 评论 -
1-01-2 安装 VS Code for Python
让学习者可以真正由浅入深学习到 Python 与操作环境整个互动的过程,本书采用 Python 解释器加上 Visula Studio Code 编辑器来进行书中的范例练习。原创 2022-04-15 09:53:57 · 252 阅读 · 0 评论