第四章. Pandas进阶—数据合并

news2025/8/3 6:41:19

第四章. Pandas进阶

4.6 数据合并

数据合并主要使用的是Merge方法和Concat方法

1.数据合并(merge函数)

1).语法:

pandas.merge(right,how=‘inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False... )

参数说明:
right:合并对象,Series或DataFrame
how:合并类型,可以是left(左合并), right(右合并), outer(外合并), inner(内合并)
on:联接的列或者索引级别名称
left_on:左数据集联接的列或者索引级别名称
right_on:右数据集联接的列或者索引级别名称
left_index:使用左数据集的索引作为连接键(bool类型)
right_index:使用右数据集的索引作为连接键(bool类型)

2).示例

  • 示例1:常规合并
import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', True)  # 处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)  # 无法对齐主要是因为列标题是中文

df1 = pd.read_excel('F:\\Note\\图书采购清单.xlsx', sheet_name='Sheet1')
print(df1)
print('*' * 50)

df2 = pd.read_excel('F:\\Note\\图书采购清单.xlsx', sheet_name='Sheet2')
print(df2)
print('*' * 50)

df_merge1 = pd.merge(df1, df2, on='序号', how='left')
print(df_merge1)

结果展示:
在这里插入图片描述

  • 示例2:多对一的数据合并:
import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', True)  # 处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)  # 无法对齐主要是因为列标题是中文

df1 = pd.read_excel('F:\\Note\\图书采购清单.xlsx', sheet_name='Sheet1')
print(df1)
print('*' * 50)

df2 = pd.read_excel('F:\\Note\\图书采购清单.xlsx', sheet_name='Sheet2')
print(df2)
print('*' * 50)

df_merge1 = pd.merge(df1, df2, on='序号')
print(df_merge1)

结果展示:
在这里插入图片描述

  • 示例3:多对多的数据合并:
import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', True)  # 处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)  # 无法对齐主要是因为列标题是中文

df1 = pd.read_excel('F:\\Note\\图书采购清单.xlsx', sheet_name='Sheet1')
print(df1)
print('*' * 50)

df2 = pd.read_excel('F:\\Note\\图书采购清单.xlsx', sheet_name='Sheet2')
print(df2)
print('*' * 50)

df_merge1 = pd.merge(df1, df2, on='序号')
print(df_merge1)

结果展示:
在这里插入图片描述

2.数据合并(Concat函数)

1).语法:

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

参数说明:
objs:合并对象,Series或DataFrame
axis:0:代表列;1:代表行;默认0
join:inner:交集 outer:并集

2).示例

  • 示例1:相同字段的表收尾相连
import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', True)  # 处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)  # 无法对齐主要是因为列标题是中文

df1 = pd.read_excel('F:\\Note\\图书采购清单.xlsx', sheet_name='Sheet1')
print(df1)
print('*' * 50)

df2 = pd.read_excel('F:\\Note\\图书采购清单.xlsx', sheet_name='Sheet2')
print(df2)
print('*' * 50)

df_concat1 = pd.concat([df1, df2], keys=['Sheet1', 'Sheet2'])
print(df_concat1)

结果展示:
在这里插入图片描述

  • 示例2:横向表对齐(行对齐)
import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', True)  # 处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)  # 无法对齐主要是因为列标题是中文

df1 = pd.read_excel('F:\\Note\\图书采购清单.xlsx', sheet_name='Sheet1')
print(df1)
print('*' * 50)

df2 = pd.read_excel('F:\\Note\\图书采购清单.xlsx', sheet_name='Sheet3')
print(df2)
print('*' * 50)

df_concat1 = pd.concat([df1, df2], keys=['Sheet1', 'Sheet3'], axis=1)
print(df_concat1)

结果展示:
在这里插入图片描述

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

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

相关文章

甘露糖-聚乙二醇-马来酰亚胺 mannose-PEG-MAL 马来酰亚胺-PEG-甘露糖

甘露糖-聚乙二醇-马来酰亚胺 mannose-PEG-MAL 马来酰亚胺-PEG-甘露糖,溶于大部分有机溶剂,如:DCM、DMF、DMSO、THF等等。在水中有很好的溶解性 中文名称:甘露糖-马来酰亚胺 英文名称:mannose-MAL 别称:…

【LeetCode 每日一题】53. 最大子数组和

01 题目描述 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 02 示例 示例1: 输入:nums [-2,1,-3,4,-1,2,1,-5…

从 React 源码彻底搞懂 Ref 的全部 api

ref 是 React 里常用的特性,我们会用它来拿到 dom 的引用。 它一般是这么用的: 函数组件里用 useRef: import React, { useRef, useEffect } from "react";export default function App() {const inputRef useRef();useEffect(…

几乎涵盖了近半年90%的Java面试题,可以肝起来了

前言 很多人在问:八股文还有必要背吗? 近半年来大家听到的、用到的不少,带来的争议也不断。 有人奉为面试神器,全文背诵。有人觉得八股文铺天盖地实际作用不大,还害人不浅… 我觉得不是背不背八股文的问题&#xff0c…

【机器学习并行计算】2 parameter server参数服务器

使用ps实现异步梯度下降。 14年提出的。 异步 vs 同步 可以看出异步运行效率非常高。 异步梯度下降的流程 ps架构流程 worker: 首先从参数服务器拉取最新的参数;然后用自己节点上的数据计算梯度;最后把梯度推给参数服务器参数服务器&#xf…

最快速的文件传输软件,解析镭速文件传输软件

想到每天都需要进行文件传输,就会烦躁,要是有一夸最快速的文件传输软件的话,这样就可以节省大量的时间了,那么针对于用户的这一个需求,我们来介绍一下镭速的文件传输软件,看是否是那么快,快到你…

无监督端到端框架:IVIF

VIF-Net: An Unsupervised Framework for Infrared and Visible Image Fusion ( VIF-Net: 红外和可见光图像融合的无监督框架) (本文理解上的难易程度:易) 在本文中,我们提出了一种用于红外和可见图像融合…

css 动画实现节流效果

今天在做节流操作时,无意间看到可以用css动画去实现节流效果,然后一顿操作发现果然可以,记录一下 CSS pointer-events 属性 一、 用css中的pointer-events(指针事件)、animation(动画)以及:act…

WordPress做缓存Memcached Is Your Friend+Batcache

宝塔面板有两个地方有Memcached,一个是在软件商店的运行环境里面,一个是在php扩展里面,我们先安装PHP扩展中的Memcached ,然后wp后台搜索Memcached Is Your Friend安装插件。WordPress做缓存很给力。缓存命中率保持在 90%以上的WordPress 本地缓存加速方案。 默认我们看到命…

E-Payment Integrator Delphi Edition

E-Payment Integrator Delphi Edition 通过为组件提供处理信用卡和电子支票交易的直观界面,减轻了集成电子支付支持的复杂性。开发人员无需学习复杂的套接字编程或安全实现。通过使用电子支付集成器,开发人员能够针对当前支持的任何支付网关进行定位和开…

比较复杂的策略路由综合实验

下面是网络技能大赛策略这个模块的要求,单独拿出来整理一下 R1、R2、R3间运行OSPF,进程号20,规划单区域:区域0; VSU、R2、R3间运行OSPF,进程号21,规划单区域:区域0; …

JavaScript之事件高级(53rd)

1、注册事件(绑定事件) 给元素添加事件,称为注册事件或者绑定事件。 注册事件有两种方式:传统方式和方法监听注册方式 1、addEventListener事件监听方式 1、eventTarget.addEventListener()方法将指定的监听器注册到 eventTarget(目标对…

springMVC异常处理的知识点+异常处理案例

springMVC异常处理的知识点异常处理案例 异常介绍: 我们知道系统中的异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试等手段减少运行时异常的发生 在SpringMVC处理异…

有关服务器虚拟化的常见问题解答

虚拟化”一词经常使用,尤其是与服务器相关的时候。以下是一些有关服务器虚拟化常见问题的解答。 什么是服务器虚拟化? 虚拟化是一个经常应用于范围广泛的技术的术语。从本质上讲,虚拟化技术就是使用分布式软件硬件。在服务器虚拟化领域,这意…

Android

直接运行 最新版的 apktool 可以通过brew安装,命令如下 brew install apktool # 验证安装结果apktool -version (Mac)反编译Android APK详细操作指南[ApkTool,dex2jar,JD-GUI] - CrazyCodeBoy的技术博客官网|CrazyCodeBoy|Devio|专注移动技术开发(Android&I…

【计算机网络】广域网协议分析

注:最后有面试挑战,看看自己掌握了吗 文章目录广域网WAN广域网局域网区别PPP协议----链路层------广域网PPP协议组成3个ppp状态图PPP协议帧格式HDLC协议--------链路层------广域网帧格式------无监信PPP协议和HDLC🍃博主昵称:一拳…

通用Mapper获取数据表中id为0解决方法。千万别瞎改int为integer了

项目场景: 最近准备自己写一个框架。由于是舍弃了成熟框架,所以在集成一些组件的时候,发现了一些之前没有注意过的问题。 这次是集成通用mapper时出现的一个问题。。。 问题描述 使用通用Mapper的selectAll()方法后,得到的id值都…

Java【抽象类和接口】是什么?

文章目录前言一、抽象类1.什么是抽象类2.抽象类的特征3.抽象类的作用二、接口1.什么是接口2.语法规范3.接口的使用4.接口的特征5.实现多个接口6.接口间的继承总结前言 前篇文章分享过了 面向对象语言的三大特征:封装,继承,多态 本篇呢将继续…

LCR表测电容怎么实现连续测试?ATECLOUD云测试平台帮您解决

河南某企业在生产测试中需要用到LCR表测试电容的容量和损耗,目前在使用是德科技E4980a LCR 测试数据时,发现不能连续测试,不能自动记录数据。通过和纳米软件Namisoft沟通,希望我们可以实现连续测试并将测试数据自动记录&#xff0…

steam搬砖项目,当下最稳定长久的

我为什么这么推荐普通人来做CSGO搬砖,最主要的原因就两点,一是平台流量大知道的人少,二就是不需要什么成本! CSGO是基于steam衍生出来的,steam的流量池有多大,想必大家都心知肚明, Steam平台是…