但我们在处理Pandas多表数据时,我们需要将多个表之间进行表格的连接与合并,当连接完多表之后我们可能还需要对数据进行多重的索引,方便我们更快的找到数据,以及对数据进行做透视表,更加直观的去观察我们的数据,今天我们就围绕着数据合并以及数据重塑及透视表进行展开讲解,让我们去了解在Pandas中如何去这么操作数据。

一、数据合并

1、连接表,

在我们获得数据的时候可能数据并不完整,而我们需要将这些不完整的数据合并到一起组成一个完整的数据,下面我们对数据进行合并的操作。

  • 创建3个DataFrame表格

查看一下三个表的数据

  1. 将表格通过concat()方法进行合并

Concat参数如下

Objs(必须参数)

参与连接的pandas对象的列表或字典

Axis

指名连接的轴向,默认为0

Join

选中inner或outer(默认),其他轴向上索引是按交集(inner)还是并集(outer)进行合并

Join_axes

指名用于其他N-1条轴的索引,不执行并集/交集运算

Keys

与连接对象有关的值,用于形成连接轴向上的层次化索引。可以是任意值的列表、数组、元组数组和数组列表(如果需要将levels设置成多级数组的话)

Levels

指定用作层次化索引各级别的索引,如果设置了keys的话

Names

用于创建分层级别的名称,如果设置了keys或levels的话

Verify_integrity

检查结果对象新轴上的重复情况,如果发则引发异常。默认为(false)允许重复

Ignore_index

不保留连接轴上的索引,产生一组新索引range

  • 通过keys参数设置连接df1、df2、df3的值为x、y、z
  • 新增加一个df4表,横向连接到df1表的第2、3、6、7列
  • 将df1和df4横向进行交集合并

可以看出,合并后的数据为df1和df4都有的索引行进行合并的

  • 按照df1的索引进行df1表和df4表的横向索引
  • 结果可以看出合并是按照df1表的索引进行合并的。通过append()方法连接表格连接df1和df2
  • 连接df1和df4表

可以看出在合并的数据中原表中没有的索引和列值都填充为了NaN缺失值。

  • 连接df1、df2、df3表
  • 忽略连接轴上的上的索引
  • 新增加一个s1表,并且跟df1进行横向合并
  • 新增加一个s2表,并且跟df1进行多次连接

结果可以看出,s2表中的数据并未确定列名,那么系统就自动的从0开始进行列名的名称。

  • 表格合并后不保留原有的索引列名

表格合并后将原有的列名全部替换为一个range()序列

1.3、附加行

结尾可以看出,合并后将s2中的数据作为附加行跟在了df1表的后面

2、数据库风格的DataFrame连接/合并

2.1、单个键进行连接

  • 创建两个表格并查看
  • 将key作为两个表连接的中介

2.2、多个键进行连接

  • 创建两个表格,然后将表格以Key1和key2作为中介进行连接

可以看出左右表以共同存在的key1、key2的行作为取出元素的依据,只取出了前三行,left表中的第四行为k2、k1,right表中的第四行为k2、k0,并不匹配所以没有进行取值。

  • 以左表为主导进行连接,连接以key1,key2作为连接中介进行取值

可以看出这次连接是以left表汇总的key1 、key2作为主键进行连接,right表中的不存在的主键元素则以NaN代替。

  • 以右表的key1、key2位主键进行连接
  • 以两个表所有的key1、key2的元素都取出来
  • 当两个表列名相同时进行合并

列名相同时则会重新命名列名

2.3、合并指示符

  • 以并集进行合并

也可以使用字符串作为参数替代True,字符串会作为该列的列名称。

2.4、通过索引进行连接

  • 通过左表索引连接右表
  • 左表连接右表,求并集的形式
  • 左表连右表,求交集的形式

2.5、通过索引和某列连接

通过结果可以看出,right表中的数据重复了一遍。

2.6、重叠列名称的合并

2.7、数据框拼接

如果都存在的值以传入的数据为准

二、数据重塑及透视表

1、多重索引

  • 创建表格并查看
  • 查看animal和hair_length下的所有数据

或者以一级标题或二级标题进行查看

  • 创建表格并查看

使用level参数进行调用

  • 查看exp下面的属性值
  • 查看anmal下面的属性值
  • 调用数据
  • 调用first数据
  • 调用second数据

2、透视表

  • 创建一个透视表
  • 查看D列,索引为A,B,列为C的所有数据
  • 查看D列,索引为B,列为A,C的所有数据求和
  • 查看DE列,索引为B,列为A,C的求和数据
  • 查看索引为A,B,列为C的数据

dataframe 如何选中某列的一行_带你领略pandas中多表之间如何处理相关推荐

  1. dataframe 如何增加新的索引_带你领略pandas中多表之间如何处理

    但我们在处理Pandas多表数据时,我们需要将多个表之间进行表格的连接与合并,当连接完多表之后我们可能还需要对数据进行多重的索引,方便我们更快的找到数据,以及对数据进行做透视表,更加直观的去观察我们的 ...

  2. dataframe 如何选中某列的一行_快速解释如何使用pandas的inplace参数

    介绍 在操作dataframe时,初学者有时甚至是更高级的数据科学家会对如何在pandas中使用inplace参数感到困惑. 更有趣的是,我看到的解释这个概念的文章或教程并不多.它似乎被假定为知识或自 ...

  3. dataframe 如何选中某列的一行_如何用 Python 在笔记本上分析 100GB 数据?

    许多组织都想尽可能多地收集和利用数据,从而改进业务.增加收入和提升影响力.因此,数据科学家们要面对 50GB,甚至 500GB 数据集的场景变得越来越普遍. 目前,这些数据集处理起来有点麻烦.就大小而 ...

  4. dataframe 如何选中某列的一行_PySpark和SparkSQL基础:如何利用Python编程执行Spark(附代码)

    作者:Pinar Ersoy 翻译:孙韬淳 校对:陈振东 本文约2500字,建议阅读10分钟 本文通过介绍Apache Spark在Python中的应用来讲解如何利用PySpark包执行常用函数来进行 ...

  5. python dataframe的某一列变为list_Python数据分析系列文章之Pandas(上)

    本篇是[机器学习与数据挖掘]头条号原创首发Python数据分析系列文章的第三篇 Python数据分析系列文章之Python基础篇 Python数据分析系列文章之Numpy Python数据分析系列文章 ...

  6. mysql查询两张表的同一列_如何快速查找两个数据表之间的相同和不同?

    原标题:如何快速查找两个数据表之间的相同和不同? 知识 随笔 案例 声音 其他 编者按 工作中经常会遇到对来源不同的数据进行比对,查找相同.不同.差异性等.过于复杂的需求,我们通常会转换思路,使用数据 ...

  7. mysql数据库特征_如何掌握MySQL数据库中动态表的特征

    以下的文章主要介绍的是如何正确掌握MySQL数据库中动态表的特征,可以说动态表在MySQL数据库中使用频率还是很大的,所以MySQL数据库中动态表的掌握也是一件很重要的事情,以下就是文章的具体内容. ...

  8. 悲观锁和乐观锁_带你了解MySQL中的乐观锁与悲观锁

    在并发控制编程中锁是一个非常重要的概念,锁对于数据和业务一致性的保证起到关键作用,锁可以是程序层面的,也可以是数据库层面的,今天本文就通过MySQL来说明悲观锁与乐观锁两种常见的锁机制. 悲观锁 悲观 ...

  9. pandas用众数填充缺失值_缺而不失——pandas中常见缺失值处理方法

    缺失值的处理是一件艺术活,最高的境界应该是缺而不失.pandas中提供了非常丰富的工具来对缺失值进行处理.这里主要是对常用方法的简要介绍. 注:不同地区和软件对缺失值的表示方法不同,在用pandas读 ...

最新文章

  1. 简书-一个集优雅文艺和Markdown于一身的网站
  2. java网络编程面试题
  3. Java8 EnumMap 源码分析
  4. Anaconda 安装 Tensorflow 教程
  5. 螺旋矩阵Python解法
  6. Android之 如何解决ScrollView 和ListView滑动冲突的问题如何解决ScrollView can host only one direct child
  7. 「LibreOJ NOI Round #2」不等关系 (dp+NTT分治)
  8. 推荐一个可交互的 Attention 可视化工具!我的Transformer可解释性有救啦?
  9. pptx字体类的相关方法
  10. PHP中通过Web 执行C/C++应用程序
  11. 大脑芯片首次进行人类测试 增强记忆指日可待?
  12. python制作雷达图_python制作雷达图
  13. 防盗链及图片加密系统
  14. 怎么把ide改成ahci_怎么改硬盘模式IDE,AHCI
  15. 舍得网开发者碰到的问题及解决(转)
  16. 不格式化改U盘文件系统格式
  17. pc端自适应不同屏幕
  18. Transportation Research(TR)系列主编汇总
  19. 服务器上的系统盘和数据盘,云服务器系统盘和数据盘区别
  20. Consumer接口和Supplier接口

热门文章

  1. java基础学习笔记(三)
  2. npm的镜像替换淘宝
  3. mysql实现内容加密_简单为mysql 实现透明加密方法
  4. linux c语言编写聊天室mysql_Linux平台上用C语言实现与MySQL数据库的连接
  5. vs2019Linux守护,Visual Studio 2019将支援Ninja显着提升Linux专案建置效率
  6. jwt token 太长_理解 JWT 鉴权的应用场景及使用建议
  7. python数据的格式输出_Python格式化输出
  8. python怎么引入os模块的函数_Python里的OS模块常用函数说明
  9. html标签info,HtmlTrInfo 元素
  10. supervisor 子进程退出_用supervisor监管你的程序,不用担心程序挂了