
Python数据分析
文章平均质量分 95
CoreJT
中科院自动化所在读直博生,感兴趣的研究方向:文本分类、情感分析、机器阅读理解与问答系统以及对话系统。
展开
-
Python数据分析 | (35) 时区处理
目录1. 时区处理2. 时区本地化和转换3. 操作时区意识型Timestamp对象4. 不同时区之间的运算1. 时区处理时间序列处理工作中最让人不爽的就是对时区的处理。许多人都选择以协调 世界时(UTC,它是格林尼治标准时间(Greenwich Mean Time)的接替 者,目前已经是国际标准了)来处理时间序列。时区是以UTC偏移量的形式表示的。例如,夏令时期间,纽...原创 2019-10-16 17:41:10 · 926 阅读 · 0 评论 -
Python数据分析 | (34) 日期的范围、频率以及移动
pandas中的原生时间序列一般被认为是不规则的,也就是说,它们没有固定 的频率。对于大部分应用程序而言,这是无所谓的。但是,它常常需要以某 种相对固定的频率进行分析,比如每日、每月、每15分钟等(这样自然会在 时间序列中引入缺失值)。幸运的是,pandas有一整套标准时间序列频率以 及用于重采样、频率推断、生成固定频率日期范围的工具。例如,我们可以 将之前那个时间序列转换为一个具有固定频率(每日...原创 2019-10-14 09:52:39 · 1133 阅读 · 0 评论 -
Python数据分析 | (33) 时间序列基础
目录1. 时间序列基础2. 索引、选取、子集构造3. 带有重复索引值的时间序列1. 时间序列基础import numpy as npimport pandas as pdnp.random.seed(12345)import matplotlib.pyplot as pltplt.rc('figure', figsize=(10, 6))PREVIOUS_MAX_R...原创 2019-10-13 12:56:23 · 381 阅读 · 0 评论 -
Python数据分析 | (32) 日期和时间数据类型及工具
时间序列(time series)数据是一种重要的结构化数据形式,应用于多个领 域,包括金融学、经济学、生态学、神经科学、物理学等。在多个时间点观 察或测量到的任何事物都可以形成一段时间序列。很多时间序列是固定频率 的,也就是说,数据点是根据某种规律定期出现的(比如每15秒、每5分 钟、每月出现一次)。时间序列也可以是不定期的,没有固定的时间单位或 单位之间的偏移量。时间序列数据的意义取决于具体的...原创 2019-10-12 12:22:09 · 1131 阅读 · 0 评论 -
Python数据分析 | (31) 透视表和交叉表
目录1. 透视表2. 交叉表:crosstab3. 总结1. 透视表透视表(pivot table)是各种电子表格程序和其他数据分析软件中一种常见的 数据汇总工具。它根据一个或多个键对数据进行聚合,并根据行和列上的分 组键将数据分配到各个矩形区域中。在Python和pandas中,可以通过本博客所 介绍的groupby功能以及(能够利用层次化索引的)重塑运算制作透视表。Da...原创 2019-10-11 12:55:21 · 3318 阅读 · 0 评论 -
Python数据分析 | (30) apply:一般性的"拆分-应用-合并"
目录1. apply2. 禁止分组键3. 分位数和桶分析4. 示例:用特定于分组的值填充缺失值5. 示例:随机采样和排列6. 示例:分组加权平均数和相关系数7. 示例:组级别的线性回归1. apply最通用的GroupBy方法是apply,本篇博客将重点讲解它。如下图所 示,apply会将待处理的对象拆分成多个片段,然后对各片段调用传入的函 数,最后尝试将各片段...原创 2019-10-10 09:04:19 · 1326 阅读 · 0 评论 -
Python数据分析 | (29) 数据聚合
目录1. 数据聚合2. 面向列的多函数应用3. 以"没有行索引"的形式返回聚合数据1. 数据聚合聚合指的是任何能够从数组产生标量值的数据转换过程。之前的例子已经用 过一些,比如mean、count、min以及sum等。你可能想知道在GroupBy对象 上调用mean()时究竟发生了什么。许多常见的聚合运算(如下表所示)都 有进行优化。然而,除了这些方法,你还可以使用其它的。...原创 2019-10-09 08:38:06 · 919 阅读 · 0 评论 -
Python数据分析 | (28) GroupBy机制
对数据集进行分组并对各组应用一个函数(无论是聚合还是转换),通常是 数据分析工作中的重要环节。在将数据集加载、融合、准备好之后,通常就 是计算分组统计或生成透视表。pandas提供了一个灵活高效的gruopby功 能,它使你能以一种自然的方式对数据集进行切片、切块、摘要等操作。关系型数据库和SQL(Structured Query Language,结构化查询语言)能够 如此流行的原因之一就是...原创 2019-10-08 18:54:10 · 1980 阅读 · 0 评论 -
Python数据分析 | (27) 重塑和轴向旋转
有许多用于重新排列表格型数据的基础运算。这些函数也称作重塑(reshape)或轴向旋转(pivot)运算。目录1. 重塑层次化索引2. 将"长格式"旋转为"宽格式"3.将"宽格式"旋转为"长格式"1. 重塑层次化索引层次化索引为DataFrame数据的重排任务提供了一种具有良好一致性的方 式。主要功能有二:stack:将数据的列“旋转”为行。 unstack:将数据...原创 2019-10-06 20:03:15 · 948 阅读 · 0 评论 -
Python数据分析 | (26) 合并数据集
pandas对象中的数据可以通过一些方式进行合并:pandas.merge可根据一个或多个键将不同DataFrame中的行连接起来。SQL或其他关系型数据库的用户对此应该会比较熟悉,因为它实现的就 是数据库的join操作。 pandas.concat可以沿着一条轴将多个对象堆叠到一起。 实例方法combine_first可以将重复数据拼接在一起,用一个对象中的值填充另一个对象中的缺失值。...原创 2019-10-06 17:07:27 · 4456 阅读 · 0 评论 -
Python数据分析 | (25) 层次化索引
在许多应用中,数据可能分散在许多文件或数据库中,存储的形式也不利于分析。接下来的几篇博客将关注可以聚合、合并、重塑数据的方法。首先,我会介绍pandas的层次化索引,它广泛用于以上操作。然后,我将深入介绍了一些特殊的数据操作。在之后的博客中,你可以看到这些工具的多种应用。目录1. 层次化索引2. 重排与分级排序3. 根据级别汇总统计4. 使用DataFrame的列进行索引...原创 2019-10-06 14:50:46 · 2576 阅读 · 1 评论 -
Python数据分析 | (24) 字符串操作
Python能够成为流行的数据处理语言,部分原因是其简单易用的字符串和文 本处理功能。大部分文本运算都直接做成了字符串对象的内置方法。对于更 为复杂的模式匹配和文本操作,则可能需要用到正则表达式。pandas对此进 行了加强,它使你能够对整组数据应用字符串表达式和正则表达式(并行化/向量化处理),而且能 处理烦人的缺失数据。目录1. 字符串对象方法2. 正则表达式3.pandas的...原创 2019-10-04 20:08:30 · 611 阅读 · 0 评论 -
Python数据分析 | (23) 数据转换
本章到目前为止介绍的都是数据的重排。另一类重要操作则是过滤、清理以及其他的转换工作。目录1. 移除重复数据2. 利用函数或映射进行数据转换3. 替换值4. 重命名轴索引5. 离散化和面元划分6. 检测和过滤异常值7. 排列和随机采样8. 计算指标/哑变量1. 移除重复数据DataFrame中出现重复行有多种原因。下面就是一个例子:data = pd...原创 2019-10-01 17:44:50 · 2099 阅读 · 0 评论 -
Python数据分析 | (22) 处理缺失数据
在数据分析和建模的过程中,相当多的时间要用在数据准备上:加载、清 理、转换以及重塑。这些工作会占到分析师时间的80%或更多。有时,存储 在文件和数据库中的数据的格式不适合某个特定的任务。许多研究者都选择 使用通用编程语言(如Python、Perl、R或Java)或UNIX文本处理工具(如sed或awk)对数据格式进行专门处理。幸运的是,pandas和内置的Python标准库提供了一组高级的、灵活的...原创 2019-10-01 15:10:46 · 773 阅读 · 0 评论 -
Python数据分析 | (21) Web APIs交互和数据库交互
目录1. Web APIs交互2. 数据库交互3. 总结1. Web APIs交互许多网站都有一些通过JSON或其他格式提供数据的公共API。通过Python访 问这些API的办法有不少。一个简单易用的办法(推荐)是requests包 (http://docs.python-requests.org)。为了搜索最新的30个GitHub上的pandas主题,我们可以发一个HT...原创 2019-09-30 09:20:29 · 600 阅读 · 0 评论 -
Python数据分析 | (20) 二进制数据格式
目录1. pickle序列化2. 使用HDF5格式3. 读取Microsoft Excel文件1. pickle序列化实现数据的高效二进制格式存储最简单的办法之一是使用Python内置的pickle序列化。pandas对象都有一个用于将数据以pickle格式保存到磁盘上的to_pickle方法:frame = pd.read_csv('examples/ex1.csv')...原创 2019-09-30 08:51:40 · 1400 阅读 · 0 评论 -
Python数据分析 | (19) 数据加载与存储---文本格式数据
在本篇博客中,我们将讨论用pandas读取(或加载)和写入数据集的工具。之后,我们将更深入地研究使用pandas进行数据清洗、规整、分析和可视化 工具。访问数据是使用本书所介绍的这些工具的第一步。我会着重介绍pandas的数 据输入与输出,虽然别的库中也有不少以此为目的的工具。输入输出通常可以划分为几个大类:读取文本文件和其他更高效的磁盘存储 格式,加载数据库中的数据,利用Web API操作网...原创 2019-09-29 11:17:54 · 989 阅读 · 0 评论 -
Python数据分析(18) | pandas汇总和计算描述统计
目录1. 聚合计算2. 相关系数与协方差3. 唯一值、值计数以及成员资格1. 聚合计算pandas对象拥有一组常用的数学和统计方法。它们大部分都属于约简和汇总 统计,用于从Series中提取单个值(如sum或mean)或从DataFrame的行或 列中提取一个Series。跟对应的NumPy数组方法相比,它们都是基于没有缺 失数据的假设而构建的。看一个简单的DataFrame:...原创 2019-09-28 17:13:19 · 1937 阅读 · 0 评论 -
Python数据分析 | (17) pandas的基本功能
本篇博客中,我将介绍操作Series和DataFrame中的数据的基本手段。后续将更加深入地挖掘pandas在数据分析和处理方面的功能。这不是pandas库 的详尽文档,主要关注的是最重要的功能,那些不大常用的内容(也就是那 些更深奥的内容)就交给你自己去摸索吧。目录1. 重新索引2. 丢弃指定轴上的项3. 索引、选取和过滤4. 整数索引5. 算术运算和数据对齐6. ...原创 2019-09-28 15:04:50 · 866 阅读 · 0 评论 -
Python数据分析 | (16) 使用pandas和seaborn绘图
matplotlib实际上是一种比较低级的工具。要绘制一张图表,你组装一些基本 组件就行:数据展示(即图表类型:线型图、柱状图、盒形图、散布图、等 值线图等)、图例、标题、刻度标签以及其他注解型信息。在pandas中,我们有多列数据,还有行和列标签。pandas自身就有内置的方 法,用于简化从DataFrame和Series绘制图形。另一个库seaborn(https:// seaborn.p...原创 2019-09-27 13:46:09 · 2810 阅读 · 0 评论 -
Python数据分析 | (15) matplotlib API入门
信息可视化(也叫绘图)是数据分析中最重要的工作之一。它可能是探索过 程的一部分,例如,帮助我们找出异常值、必要的数据转换、得出有关模型 的idea等。另外,做一个可交互的数据可视化也许是工作的最终目标。Python有许多库进行静态或动态的数据可视化,但我这里重要关注于matplotlib(http://matplotlib.org/)和基于它的库。matplotlib是一个用于创建出版质量图表...原创 2019-09-27 09:33:58 · 1331 阅读 · 0 评论 -
Python数据分析 | (14)Pandas的数据结构
本篇博客所有示例使用Jupyter NoteBook演示。Python数据分析系列笔记基于:利用Python进行数据分析(第2版) 目录1.pandas简介2.pandas数据结构介绍1.pandas简介Python数据分析系列博客剩余的大部分内容是用pandas处理数据,不过还是会用到相似的基于数组的计算。pandas含有使数据清洗和分析工作变得更快更简单的数据结构...原创 2019-01-18 16:26:24 · 653 阅读 · 1 评论 -
Python数据分析 | (13)数组文件输入输出及结构化和记录式数组
本篇博客所有示例使用Jupyter NoteBook演示。Python数据分析系列笔记基于:利用Python进行数据分析(第2版) 目录1.用于数组的文件输入输出2.高级数组输入输出3.结构化和记录式数组4.性能建议1.用于数组的文件输入输出NumPy能够读写磁盘上的文本数据或二进制数据。本小节只讨论NumPy的内置二进制格式,因为更多用户会使用pandas或其他...原创 2019-01-16 18:22:18 · 1521 阅读 · 0 评论 -
Python数据分析 | (12)通用函数:快速的元素级数组函数
本篇博客所有示例使用Jupyter NoteBook演示。Python数据分析系列笔记基于:利用Python进行数据分析(第2版) 目录1.通用函数ufunc2.通用函数ufunc高级应用3.用Numba编写快速NumPy函数1.通用函数ufunc通用函数(ufunc)是一种对ndarray中的数据执行元素级运算的函数。你可以将其看作简单函数(接受一个或多个标量值,并...原创 2019-01-14 23:32:55 · 1990 阅读 · 0 评论 -
Python数据分析 | (11)利用NumPy数组进行数据处理
本篇博客所有示例使用Jupyter NoteBook演示。Python数据分析系列笔记基于:利用Python进行数据分析(第2版) 目录1.简介2.将条件逻辑表述为数组运算3.数学和统计方法4.用于布尔型数组的方法5.唯一化以及其他集合逻辑6.排序1.简介NumPy数组可以让你将许多中数据处理任务表述为简洁的数组表达式(不需要写循环).用数组表达式代替循环...原创 2019-01-14 16:11:18 · 1898 阅读 · 0 评论 -
Python数据分析 | (10)NumPy线性代数和伪随机数生成
本篇博客所有示例使用Jupyter NoteBook演示。Python数据分析系列笔记基于:利用Python进行数据分析(第2版) 目录1.线性代数2.伪随机数生成3.示例:随机漫步1.线性代数线性代数(如矩阵乘法、矩阵分解、行列式以及其他方阵数学等)是数组库的重要组成部分。NumPy提供了矩阵乘法的dot函数:import numpy as npx = ...原创 2019-01-12 16:16:36 · 964 阅读 · 0 评论 -
Python数据分析 | (9)NumPy数组高级操作---变型、重塑、扁平、合并拆分以及重复
本篇博客所有示例使用Jupyter NoteBook演示。Python数据分析系列笔记基于:利用Python进行数据分析(第2版) 目录1.数组转置和轴对换2.数组重塑3.数组扁平化4.数组的合并和拆分5.元素的重复操作:tile/repeat1.数组转置和轴对换转置是重塑的一种特殊形式,返回的是源数据的视图(不会进行任何复制操作).二维数组2维数组转置...原创 2019-01-12 12:45:48 · 2464 阅读 · 0 评论 -
Python数据分析 | (8)NumPy数组的索引和切片
本篇博客所有示例使用Jupyter NoteBook演示。Python数据分析系列笔记基于:利用Python进行数据分析(第2版) 目录1.基本的索引和切片2.切片索引3.布尔型索引4.花式索引5.花式索引的等价函数1.基本的索引和切片NumPy数组的索引是一个内容丰富的主题,因为选取数据子集或单个元素的方式很多。一维数组一维数组很简单,表面上和Pyth...原创 2019-01-11 17:01:37 · 6767 阅读 · 0 评论 -
Python数据分析 | (7)NumPy数组的运算
本篇博客所有示例使用Jupyter NoteBook演示。Python数据分析系列笔记基于:利用Python进行数据分析(第2版) 目录1.相同大小数组间的运算2.不同大小数组间的运算(广播)1.相同大小数组间的运算数组很重要,因为它使你不用编写循环即可对数据执行批量运算,我们把它称为矢量化。大小相等的数组间的任何算术运算都会将运算应用到元素级:import n...原创 2019-01-10 19:23:26 · 1823 阅读 · 0 评论 -
Python数据分析 | (6)NumPy的多维数组对象ndarray
本篇博客所有示例使用Jupyter NoteBook演示。Python数据分析系列笔记基于:利用Python进行数据分析(第2版) 目录1.ndarray对象简介2.创建ndarray3.ndarray的数据类型4.ndarray对象的内部机理5.NumPy数据类型体系1.ndarray对象简介NumPy最重要的一个特点就是其N维数组对象(ndarray...原创 2019-01-09 21:01:23 · 1221 阅读 · 0 评论 -
Python数据处理 | (三) Matplotlib数据可视化
本篇博客所有示例使用Jupyter NoteBook演示。Python数据处理系列笔记基于:Python数据科学手册电子版下载密码:ovnh示例代码 下载密码:02f4目录一、Matplotlib常用技巧1.导入Matplotlib2.设置绘图样式3.用不用show()?如何显示图形4.将图形保存为文件二、两种画图接口1.MATLAB风格接口...原创 2018-11-05 15:13:07 · 6432 阅读 · 0 评论 -
Python数据分析 | (5)初识NumPy
本篇博客所有示例使用Jupyter NoteBook演示。Python数据分析系列笔记基于:利用Python进行数据分析(第2版) 目录1.NumPy简介2.NumPy数据分析3.NumPy高效性1.NumPy简介NumPy(Numerical Python的简称)是Python数值计算最重要的基础包。大多数提供科学计算的包都是用NumPy数组作为构建基础。Num...原创 2019-01-09 19:19:07 · 331 阅读 · 0 评论 -
Python数据分析 | (4)文件和操作系统
本篇博客所有示例使用Jupyter NoteBook演示。Python数据分析系列笔记基于:利用Python进行数据分析(第2版) 目录1.文件处理基础知识2.文件的字节和Unicode 1.文件处理基础知识之后的学习中,我们通常使用诸如pandas.read_csv之类的高级工具将磁盘上的数据文件读入Python数据结构。但是我们还是需要学习一下Python文...原创 2018-12-22 19:51:17 · 351 阅读 · 0 评论 -
Python数据分析 | (3)Python函数和异常处理
本篇博客所有示例使用Jupyter NoteBook演示。Python数据分析系列笔记基于:利用Python进行数据分析(第2版) 目录1.Python函数2.生成器3.itertools模块4.错误和异常处理1.Python函数函数是Python中最重要的也是最主要的代码组织和复用手段。作为最重要的原则,如果你要重复使用相同或类似的代码,就需要写一个函数。通过给...原创 2018-12-22 16:17:34 · 664 阅读 · 0 评论 -
Python数据分析 | (2)Python数据结构和序列
本篇博客所有示例使用Jupyter NoteBook演示。Python数据分析系列笔记基于:利用Python进行数据分析(第2版) 目录1.元组2.列表3.序列函数4.字典5.集合6.列表、集合和字典推导式7.嵌套列表推导式1.元组元组是一个有固定长度且不可改变的Python序列对象。创建元组t1 = (1,2,3) #简单元组 用(...原创 2018-12-21 23:04:21 · 433 阅读 · 0 评论 -
Python数据分析 | (1)Python语法基础
本篇博客所有示例使用Jupyter NoteBook演示。Python数据分析系列笔记基于:利用Python进行数据分析(第2版) 目录Python语法基础1.语言的语义2.函数和对象方法调用3.变量和参数传递4.动态引用,强类型5.属性和方法6.鸭子类型7.引入8.二元运算符和比较运算符9.可变与不可变对象10.标量类型11.数值类...原创 2018-11-10 15:23:42 · 1198 阅读 · 0 评论