5.1 合并数据

news2024/11/16 11:06:25

5.1 合并数据

  • 5.1.1 堆叠合并数据
    • 1、横向堆叠 concat()
    • 2、纵向堆叠 concat()和append()
  • 5.1.2 主键合并数据 merge()和join()
  • 5.1.3 重叠合并数据 combine_first()

5.1.1 堆叠合并数据

  堆叠就是简单地把两个表拼在一起,也被称作轴向连接、绑定或连接。依照连接轴的方向,数据堆叠可以分为横向堆叠和纵向堆叠。

1、横向堆叠 concat()

  横向堆叠,即将两个表在X轴向拼接在一起,可以使用concat函数完成,concat函数的基本语法如下。

pandas.concat(objs, axis=0, join=‘outer’, join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True)

在这里插入图片描述
  当axis=1的时候,concat做行对齐,然后将不同列名称的两张或多张表合并。当两个表索引不完全一样时,可以使用join参数选择是内连接还是外连接。在内连接的情况下,仅仅返回索引重叠部分。在外连接的情况下,则显示索引的并集部分数据,不足的地方则使用空值填补。
横向堆叠外连接示例如下:
在这里插入图片描述

## 1、横向堆叠 concat()
import numpy as np
import pandas as pd
path1 = 'E:/Input/5_1_swc12.csv'
path2 = 'E:/Input/5_1_swc34.csv'
df1 = pd.read_csv(path1)
print("df1:", df1.shape)
print(df1)
df2 = pd.read_csv(path2)
print("df2:", df2.shape)
print(df2)

outer_data = pd.concat([df1,df2], axis = 1, join='outer',keys = 'Date')
print("外连接data:", outer_data.shape)
print(outer_data)
inner_data = pd.concat([df1,df2], axis = 1, join='inner', keys = 'Date')
print("内连接data:", inner_data.shape)
print(inner_data)

在这里插入图片描述
   Notes: 当两张表完全一样时,不论join参数取值是inner或者outer,结果都是将两个表完全按照X轴拼接起来。

2、纵向堆叠 concat()和append()

(1)concat()
  使用concat函数时,在默认情况下,即axis=0时,concat做列对齐,将不同行索引的两张或多张表纵向合并。在两张表的列名并不完全相同的情况下,可join参数取值为inner时,返回的仅仅是列名交集所代表的列,取值为outer时,返回的是两者列名的并集所代表的列,纵向堆叠外连接示例如图所示。
在这里插入图片描述

outer_data = pd.concat([df1,df2], axis = 0, join='outer',keys = 'Date')
print("纵向堆叠外连接data:", outer_data.shape)
print(outer_data)
inner_data = pd.concat([df1,df2], axis = 0, join='inner', keys = 'Date')
print("纵向堆叠内连接data:", inner_data.shape)
print(inner_data)

在这里插入图片描述
   Notes: 当两张表完全一样时,不论join参数取值是inner或者outer,结果都是将两个表完全按照Y轴拼接起来。
(2)append() #append方法已弃用,并将在未来的版本中从pandas中删除。
  append方法也可以用于纵向合并两张表。但是append方法实现纵向表堆叠有一个前提条件,那就是两张表的列名需要完全一致。

pandas.DataFrame.append(self, other, ignore_index=False, verify_integrity=False)。

在这里插入图片描述

path1 = 'E:/Input/5_1_swc12.csv'
path3 = 'E:/Input/5_1_swc12_副本.csv'
df1 = pd.read_csv(path1)
print("df1:", df1.shape)
print(df1)
df3 = pd.read_csv(path3)
print("df3:", df3.shape)
print(df3)

data = df1.append(df3)
print("data:", data.shape)
print(data)

在这里插入图片描述

5.1.2 主键合并数据 merge()和join()

  主键合并,即通过一个或多个键将两个数据集的行连接起来,类似于SQL中的JOIN。针对同一个主键存在两张包含不同字段的表,将其根据某几个字段一一对应拼接起来,结果集列数为两个元数据的列数和减去连接键的数量。
在这里插入图片描述
(1)merge函数
  和数据库的join一样,merge函数也有左连接(left)、右连接(right)、内连接(inner)和外连接(outer),但比起数据库SQL语言中的join和merge函数还有其自身独到之处,例如可以在合并过程中对数据集中的数据进行排序等。

pandas.merge(left, right, how=‘inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=(‘_x’, ‘_y’), copy=True, indicator=False)

可根据merge函数中的参数说明,并按照需求修改相关参数,就可以多种方法实现主键合并。
在这里插入图片描述

# 5.1.2 主键合并数据 merge()
# df1 = pd.read_csv(path1)
print(df1)
# df2 = pd.read_csv(path2)
print(df2)
# 合并
# data = pd.merge(df1, df2, on='Date', how = 'outer') # 与下面一样
data = pd.merge(df1, df2, left_on='Date', right_on='Date',how = 'outer')
print(data)
#  合并并根据连接键排序
data = pd.merge(df1, df2, on='Date', how = 'outer',sort = True)
print(data)

在这里插入图片描述
(1)join函数
  join方法也可以实现部分主键合并的功能,但是join方法使用时,两个主键的名字必须相同。

pandas.DataFrame.join(self, other, on=None, how=‘left’, lsuffix=‘’, rsuffix=‘’, sort=False)

在这里插入图片描述

5.1.3 重叠合并数据 combine_first()

  数据分析和处理过程中若出现两份数据的内容几乎一致的情况,但是某些特征在其中一张表上是完整的,而在另外一张表上的数据则是缺失的时候,可以用combine_first方法进行重叠数据合并,其原理如下。
在这里插入图片描述

pandas.DataFrame.combine_first(other)

在这里插入图片描述

# 5.1.3 重叠合并数据
path5 = 'E:/Input/5_1_swc12 - 副本.csv'
path6 = 'E:/Input/5_1_swc12 - 副本 (2).csv'
df5 = pd.read_csv(path5)
print(df5)
df6 = pd.read_csv(path6)
print(df6)
# 合并
data = df5.combine_first(df6)
print(data)

在这里插入图片描述

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

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

相关文章

U盘 PE系统制作教程(附pe启动教程+获取方式)

目录 软件介绍: 软件安装步骤: 01 02 03 04 05 06 07 08 09 附:u盘pe系统启动教程 01 02 03 软件介绍: 微 PE 工具箱 v2.2 是一款免费纯净、无捆绑软件、体积小巧、功能齐全的PE 系统,微PE工具箱 v2.2 …

正大国际期货与国内期货的区别

一:定义 国际期货:是指交易所建立在中国大陆以外的期货交易,以美国,英国,新加坡等交易所内的产品为常见交易期货合约。有些期货合约品种会对国内期货价格变动产生影响,所以国内投资者可以参考国际期货行情…

科普:python怎么添加命令行参数

目录 1. 安装click2. 官方例子,快速入门3. 使用Group实现命令选择4. 使用click.option对指定命令的入参进行详细配置4.1 指定 type4.1.1 指定type是某种数据类型4.1.2 指定type限定可选值4.1.3 指定type限定参数的范围 4.2 指定命令行参数接收的值的个数4.3 输入密码…

导出下拉列表的两种小技巧【EasyPoi实战系列】- 第473篇

历史文章(文章累计460) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 用…

【SVN】windows下的SVN客户端访问ubuntu下的SVN服务器

目录 第一部分 windows创建本地版本库、连接ubuntu的SVN服务器 步骤0: 步骤一:创建windows本地版本库 步骤二:checkout检测 步骤三:输入之前配置的用户名和密码 第二部分 windows上传文件至SVN服务器 步骤一:添加…

python基础学习2【numpy生成数组+random随机数生成+索引+拼接+切割【jupyter学习】】

接上一期jupyter结尾的一小部分: 这四个用好了,排版得好你的代码看起来就像一篇文章一样~ 导出功能: NumPy数值计算基础 NumPy数组对象ndarray(存储单一数据类型的多维数组): 属性 说明ndim返回int,表示数…

记录一次 bin/rails db:migrate 报错

theme: condensed-night-purple bin/rails db:migrate 最近在倒腾后端,用的是 Ruby on Rails,数据库是 Postgres,在执行数据库迁移命令(bin/rails db:migrate)时,模型更新出错了 :( bin/rails db:migrate:status 提示说&#xff0…

毕业生高频常用材料线上签,高校毕业季契约锁电子签章一站式助力

据人社部消息,2023年全国高校毕业生总规模将达1158万人!毕业季开启,全国各地高校普遍面临三方协议、成绩单、证书、证明等毕业生高频常用材料签署量激增的现状。学生、教职工、学校常常疲于应对机械化的材料盖章工作。 #毕业季高频常用材料清…

剑走偏锋,正经程序员都在用的无头浏览器到底有多神奇?

浏览器是再熟悉不过的东西了,几乎每个人用过,比如 Chrome、FireFox、Safari,尤其是我们程序员,可谓开发最强辅助,摸鱼最好的伴侣。 浏览器能干的事儿,无头浏览器都能干,而且很多时候比标准浏览…

主动发现系统稳定性缺陷:混沌工程 | 京东云技术团队

这是一篇较为详细的混沌工程调研报告,包含了背景,现状,京东混沌工程实践,希望帮助大家更好的了解到混沌工程技术,通过混沌工程实验,更好的为系统保驾护航。 一、概述 1.1 研究背景 Netflix公司最早系统化…

SpringBoot自动配置的模版引擎

文章目录 目录 一、Thymeleaf 1.什么是Thymeleaf? 2.什么是模版引擎? 3.JAVA中的SPI(Service Provider interface)机制? 4.META-INF目录是干嘛用的? 总结 前言 一、Thymeleaf 1.什么是Thymeleaf? hymeleaf是试用于Web和独立环境的现代服务器端Java模版引擎 目的:…

使用Photoshop证件照制作

利用Photoshop从普通照片制作出证件照 先取一张普通照片 首先新建一个证件照的图片 分辨率350dpi尺寸大小26mm32mm像素大小358像素(宽)441像素 颜色模式24位RGB真彩色 1,抠图,用魔棒工具三秒钟搞定,如果不太复杂的图像…

USB EHCI知识点

1 EHCI和Companion UHCI端口切换 1.1 ICH6 EHCI 如果PCI控制器包括了伴随控制器,那么USB 2.0 HC(Host Controller)必须作为一个多功能PCI设备使用。伴随HC的功能码必须小于EHCI HC功能码。如果一个 PCI设备仅仅包括一个EHCI控制器&#xff08…

一站式完成车牌识别任务:从模型优化到端侧部署

交通领域的应用智能化不断往纵深发展,其中最为成熟的车牌识别早已融入人们的日常生活之中,在高速公路电子收费系统、停车场等场景中随处可见。一些企业在具体业务中倾向采用开源方案降低研发成本,但现有公开的方案中少有完成端到端的车牌应用…

Blindly Assess Image Quality in the Wild Guided by ASelf-Adaptive Hyper Network

Abstract 真实失真图像的盲图像质量评估(BIQA)一直是一个具有挑战性的问题,因为在野外采集的图像包含各种各样的内容和各种类型的失真。目前绝大多数的BIQA方法都专注于如何预测合成图像的质量,但当应用于真实世界的失真图像时却失败了。为了应对这一挑…

Android Activity和Fragment的对比

参考来源 参考来源 参考来源 状态方法对比 onAttach() 作用:fragment已经关联到activity,这个时候 activity已经传进来了, 获得activity的传递的值 就可以进行 与activity的通信里, 当然也可以使用getActivity(),前提是这个fragm…

在CSDN逮到一个阿里10年老测试,聊过之后收益良多...

老话说的好,这人呐,一但在某个领域鲜有敌手了,就会闲得蛋疼。 前几天我在上班摸鱼刷CSDN的时候认识了一位阿里测试大佬,在阿里工作了10年,因为本人天赋比较高,平时工作也兢兢业业,现在企业内有…

ChatGPT - 基于 ChatGLM-6B 搭建私有 ChatGPT 在线聊天服务

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/131104546 Paper:GLM: General Language Model Pretraining with Autoregressive Blank Infilling 一篇于2022年发表在ACL会…

平面坐标变换(单应性变换/Homography变换)

单应性(homography)变换用来描述物体在两个平面之间的转换关系,可以用于描述平移、翻转、缩放、旋转、仿射变换等。其是对应齐次坐标下的线性变换,可以通过矩阵表示: 其中,H为单应性变换矩阵,假设变换前坐标为(x,y)&am…

指针--按值调用与模拟按引用调用,非法访问内存

在前面的章节介绍过普通变量作函数参数的方法&#xff0c;它其实是一种按值调用&#xff08;Call by Value&#xff09;的方法&#xff0c;即程序将函数调用语句中的实参的一份副本传给函数的形参。 例题&#xff1a;演示程序按值调用的例子。 #include <stdio.h> void…