python与数据处理_python数据处理:数据合并和Reshaping

本文资料来自于:

Python for Data Analysis: Chapter5, 7, 12

文中实例查看地址:http://nbviewer.jupyter.org/github/RZAmber/for_blog/blob/master/learn_numpy.ipynb

1. Combing and Merging Data Sets

在pandas中,数据可以通过三种方式进行合并。

1.1 panda.merge

通过一个或者多个key连接两个df的row。这根跟sql中的join运算类似。等复习完sql之后再来补充

1.2 pandas.concat

numpy有concatenate函数来连接两个ndarray,pandas中用concat函数,沿着轴粘连或者堆积对象

919889-20170718182119177-1928001509.png

默认按照行(垂直方向)来合并,axis=1为按照列

参数说明:join:选择合并类型,inner outer等

join_axes: 规定合并的轴

keys: 建立分层索引

b[:-2]

拼接有overlapping data的对象,用其中一个boject的值补充另外一个object中的missing data

919889-20170718182649677-1186977230.png

919889-20170718182658677-847205936.png

这是一个if else的关系,类似numpy.where函数。

b[:-2].combine_first(a[2:]): 解释就是如果(if) pd.isnull(b[:-2])中为Ture,就用a[2:]中的值补充,否则(else)还是使用b[:-2]的值

a[2:].combine_first(b[:-2]): 就是相反的,所以可以看到a[2:]中d的值为NaN,所以用了b[:-2]中d的值2.0。

2. Reshaping

2.1 Hierarchical indexing

了解reshaping要先了解分层索引,因为这两者经常一起使用。

分层索引可以让一个轴(axis)拥有多个index level。It provides a way for you to work with higher dimensional data in a lower dmensional form.

919889-20170718184324849-1893053883.png

调取index参数的时候,名称是MultiIndex,通过这个也可以确定这个是分层索引

Hierachical indexing plays a critical role in reshaping data and group-based operations like forming a pivot table.

2.2 reshaping:用来rearrange tablular data

2.2.1 reshaping in hierarchical indexing

a: stackrotetes from the columns in the data to rows

b: unstackpivot from the rows into the col

919889-20170718190550083-1268436468.png

919889-20170718190605958-1075521024.png

注意:1. 默认最底层进行unstack或者stack。如果换其他level的话可以输入level number或者name

2. 默认stacking筛除missing data,加入stack(dropna=False)就可以了

919889-20170718190806240-2122566154.png

3 advanced numpy

如上文所说,numpy有concatenate函数

numpy.concatenate takes a swquencc (tuple, list, etc) of array and joins them together in order along the input axis.

这经常跟stack系列函数放在一起使用来进行data的重组或者调用,但是我们常用panda.concat函数,跟numpy.concatenate一个意思

而且下列函数比numpy.concatenate更加简便

下面是一个函数列表:

stack() Join a sequence of arrays along a new axis.

hstack() Stack arrays in sequence horizontally (column wise).

vstack() Stack arrays in sequence vertically (row wise).

dstack() Stack arrays in sequence depth wise (along third dimension).

concatenate() Join a sequence of arrays along an existing axis.

vsplit () Split array into a list of multiple sub-arrays vertically.

919889-20170718192130583-1997418638.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567362.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用详解_Log4j2使用详解

日志框架简单比较(slf4j、j.u.l、log4j、logback、log4j2 )slf4j:slf4j是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,因为接口并不能独立使用,需要和具体的日志框架实现配合使用…

paddlehub安装及对口罩检测

1、安装 python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple pip install -i https://mirror.baidu.com/pypi/simple paddlehub 报错,解决方案: >pip install -i https://mirror.baidu.com/pypi/simple paddlehub --use…

语言专项精讲课程 赵海英_最全汇总:沪江日语课程体系指南

沪江日语课程可分为六大类,你可以根据自己的学习意愿快速定位。当然,也有课程涉及多个分类,请仔细查看一下不同课程的偏重,选择适合自己的课程。一、零基础直达 0-N1签约名师:同类课程人气王 签约课程;19节…

学习opencv3_如何高效学习计算机视觉?

计算机视觉是人工智能的一个热门方向,很多人想要入门,但是却找不到方向。对于初学者来说,最快的入门方法是边实践边学习,也就是要掌握计算机视觉的开发工具。但其实对初学者来说并不太友好,主要有几个原因:…

ora-03113 访问某条记录_用了Excel十几年,你居然不知道“记录单”?!可能错过一个亿……...

点击蓝字发送【2020】免费领 100图表模板!本文作者:竺兰本文审核:小爽本文编辑:竺兰作为一个 Excel 数据搬运工,我每天的工作就是不断地往表格中输入数据,苦恼啊。但同样作为一个「懂点 Excel」的我&#x…

python三维数组切片_【NumPy学习指南】day4 多维数组的切片和索引

ndarray支持在多维数组上的切片操作。为了方便起见,我们可以用一个省略号(...)来 表示遍历剩下的维度。 (1)举例来说,我们先用arange函数创建一个数组并改变其维度,使之变成一个三维数组&#x…

批量修改栏目名_Endnote中英文混排批量修改小技巧

来源:卓琳 赵一鸣 北医三院 临床流行病学和循证医学 如果参考文献量大,涉及多种类型和语言,手工附上参考文献非常低效,还是得借助文献管理软件。由于output style选择的不同,中文参考文献的书写格式有误,有…

python中值滤波去除椒盐噪声_Python实现图像去噪方式(中值去噪和均值去噪)

实现对图像进行简单的高斯去噪和椒盐去噪。 代码如下: import numpy as np from PIL import Image import matplotlib.pyplot as plt import random import scipy.misc import scipy.signal import scipy.ndimage from matplotlib.font_manager import FontProperti…

java 关注公众号没有调接口_深入理解Java继承、封装、多态的实现原理

点击关注上方“Java技术江湖”,设为“置顶或星标”,第一时间送达技术干货。作者:黄小斜文章来源:微信公众号【Java技术江湖】目录从JVM结构开始谈多态JVM 的结构Java 的方法调用方式常量池(constant pool)图 2. 常量池各表的关系方…

系统相机裁剪比例_如何正确设置相机:6个最常见的错误,你还在犯错吗?

你是否在摄影中出现这样的设置错误?查看相机的这6个设置,并按照以下自定义提示操作,以增强照片质量并提高专业摄影水平。1.白平衡绝大多数照片是在自动白平衡模式下拍摄的。这是一个简单的选择,在大多数情况下是合理的,但这不是1…

java 正则首位8或者9的8位数字_正则简单手机号和邮箱练习

正则表达式的组成规则在java中,正则表达式的编译是类java.util.regex.Pattern正则表达式的构造摘要1.字符x包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号的普通字符。比如之前的例子可以将[1-9][0-9]{4,12}改成1[0-9]{4,12}或者a[0-9]{4,12}此时就…

inputstreamreader 编码不完整_素材编码对剪辑效率的影响

这次说说在项目的剪辑阶段关于编码的一些注意事项。压缩编码会拖慢剪辑速度大多数中低端摄像机都使用其于时间压缩的编码来进行录制,也称为Long GOP压缩。这种编码对于缩小文件体积很有用,但是计算机不得不耗费更多的性能来进行剪辑。简单来讲&#xff0…

django默认缓存是多大_Django之缓存 - osc_fd8vzgsi的个人空间 - OSCHINA - 中文开源技术交流社区...

一、缓存由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中&#xff0c…

gitlab 安装gitlabrunner 无法连接tiller_谈一谈GitLab Runner是个什么东东?

概念我从官网搜了一下,GitLab Runner 是一个开源项目, 它用来运行你定制的任务(jobs)并把结果返回给 GitLab。 GitLab Runner 配合GitLab CI(GitLab 内置的持续集成服务) 协调完成任务。gitlab想要了解 GitLab Runner之前,我们先要知道或者说…

高中必背88个数学公式_高中数学:必修+选修全部知识点精华!附高考必背203个公式...

童鞋们好呀,2021高考将至,但是很多高三同学还是处于一个很不好的状态感觉每一科都很紧张,学校学习的节奏快,自己基础又没跟上,还要补基础总觉得后一步还没跟上,就要迈下一步了,不知道从哪学&…

mysql获取逻辑日志_Mysql 逻辑架构图及日志系统

1、Mysql逻辑架构图场景一:一条SQL语句如何执行?如图显示一条SQL语句的执行过程:执行器的执行流程:2、Mysql日志系统说到日志系统,需要了解几个概念:creash-safe、redo log、binlog、WAL技术。Redo log用于…

如何提高go代码覆盖率_如何通过静态分析提高iOS代码质量

随着项目的扩大,依靠人工codereview来保证项目的质量,越来越不现实,这时就有必要借助于一种自动化的代码审查工具:程序静态分析。程序静态分析(Program Static Analysis)是指在不运行代码的方式下,通过词法分析、语法分…

mysql 查看表是否存在_MySQL优化篇二

单表优化最佳左前缀原则为,保持索引的定义和使用顺序的一致性将含In的范围查询,放到where条件语句的最后。索引需要逐步优化两表优化小表驱动大表避免索引失效的一些原则:复合索引,不要跨列或无序使用(最佳左前缀&…

java http请求_如何设置Fiddler来拦截Java代码发送HTTP请求,进行各种问题排查

我们使用Java的RestTemplate或者Apache的HTTPClient编程的时候,经常遇到需要跟踪Java代码发送的HTTP请求明细的情况。和javascript代码在浏览器里发送请求可以通过Chrome开发者工具方便地跟踪一样,对于Java代码发送的网络请求,我们也可以使用…

mysql自增id用完了_MySQL 自增 ID 用完了怎么办?

MySQL 自增 ID 用完了怎么办?在MySQL中有很多类型的自增ID,每个自增ID都设置了初始值,然后按照一定的步长增加,只要定义了字节长度,那么就会有上限,如果达到上限再次添加,则会报主键冲突错误&am…