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…

python实例变量不存在_python – peewee实例匹配查询不存在

我有以下代码,我在查询我的peewee数据库.我在具有term.sets_term_id的行上的for循环中收到错误.这是错误TermsDoesNotExist:实例匹配查询不存在:如果我执行变量(term),则sets_terms_id是一个选项.为什么我会收到该错误以及如何解决? def get_…

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

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

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

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

常用网站网址

unix时间戳工具:Unix时间戳(Unix timestamp)转换工具 - 站长工具 js在线编辑工具:HTML/CSS/JS 在线工具 | 菜鸟工具 代码编辑器:Playground - LeetCode github搜索链接:https://github.com 画图工具:Flowchart Mak…

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

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

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

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

操作系统查看文章链接

x86讲解:80X86寄存器详解 - aitao - 博客园 计算机如何启动:计算机是如何启动的? - 阮一峰的网络日志 linux实验:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课操作系统原理与实践_Linux - 蓝桥云课

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

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

python列表导出_python list格式数据excel导出方法

如下所示: # _*_ coding:utf-8 _*_ #----------------------------------------------- # import modules #----------------------------------------------- import os import xlwt import sys import types def set_style(name, height, bold False): style xl…

shiro 方法级别细粒度权限控制_Shiro的认证和权限控制

从类别上分,有两大类:- 认证:你是谁?–识别用户身份。- 授权:你能做什么?–限制用户使用的功能。权限的控制级别从控制级别(模型)上分:- URL级别-粗粒度- 方法级别-细粒度- 页面级别-自定义标签…

python运行外部程序_在Python中运行外部程序(可执行文件)?

在Python中运行外部程序(可执行文件)? 我刚刚开始研究Python,我一直在尝试从Python运行外部可执行文件。 我有一个用Fortran编写的程序的可执行文件。 假设可执行文件的名称是flow.exe。 我的可执行文件位于C:\Documents and Sett…

word里画的流程图怎么全选_怎么用word画流程图

word是我们最常用的文档编辑软件了,他除了可以制作文字图片的编辑之外,其实它还可以轻松制作出一些简单的流程图,那么又是如何操作的呢?让我们一起看下去吧!一、word画流程图虽说word不是专门使用来画流程图的&#xf…

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…

二次扩增产物条带弥散_PCR实验操作常见解决方法

1. cDNA产量的很低可能的原因:*RNA模板质量低*对mRNA浓度估计过高*反应体系中存在反转录酶抑制剂或反转录酶量不足*同位素磷32过期*反应体积过大,不应超过50μl2. 扩增产物在电泳分析时没有条带或条带很浅*常见的原因在于您的反应体系是PCR的反应体系而不…

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

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

wordpress友联_Wordpress 友情链接页面终极版 – Fatesinger

之前写过一篇带头像的友情链接页面,当时有朋友说怎么能支持分类,我让他仿照以前不带头像的旧方法修改下,以前旧方法是用SQL语句获取的分类,其实完全可以通过Wordpress 自带的函数来实现,原因你懂的。而且还有一部分朋友…

系统相机裁剪比例_如何正确设置相机: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}此时就…