Pandas教程06:DataFrame.merge数据的合并处理

DataFrame.merge() 是 pandas 库中用于合并两个DataFrame数据的方法。该方法主要用于根据一个或多个键(键可以是列名或索引)将两个 DataFrame 连接在一起,这个过程类似于 SQL 中的 JOIN 操作。

#我的Python教程
#微信公众号:wdPython

1.下面是 DataFrame.merge() 的一些常用参数:
left_on:指定左侧 DataFrame 的键。这可以是列名。默认为 None。
right_on:指定右侧 DataFrame 的键。这可以是列名。默认为 None。
how:指定连接类型。可以是 ‘left’(左连接)、‘right’(右连接)、‘outer’(全连接)或 ‘inner’(内连接,默认)。
indicator:在合并后的 DataFrame 中添加一个指示列,指示哪些行来自左侧 DataFrame,哪些行来自右侧 DataFrame。
sort:对结果进行排序。默认为 False。
suffixes:当左右两个 DataFrame 的键相同时,为避免重复,需要添加后缀。这是一个由两个字符串组成的元组,分别用于左侧和右侧 DataFrame。
copy:是否复制数据。默认为 True。
indicator:是否添加指示列。默认为 False。
validate:用于检查合并操作是否合理的参数。默认为 None。

2.示例用法:现在,我们有两个DataFrame:df1和df2。它们都有一个名为’诗人’的列。我们想要将这两个DataFrame按照’诗人’列进行合并,并得到每个人的名字,性别,年龄和朝代。


import pandas as pddata1 = {'诗人': ['李白', '苏轼', '李清照', '杜甫', '岳飞'],'朝代': ['唐', '北宋', '宋', '唐', '南宋']}print('原始DataFrame数据1'.center(40, '-'))
df1 = pd.DataFrame(data1)
print(df1)data2 = {'诗人': ['李清照', '杜甫', '李白', '苏轼'],'性别': ['女', '男', '男', '男'],'芳龄': [15, 13, 18, 27]}
print('原始DataFrame数据2'.center(40, '-'))
df2 = pd.DataFrame(data2)
print(df2)
print('1.inner(内连接),是默认参数合并数据'.center(40, '-'))
merged_df = df1.merge(df2, on='诗人', how='inner')
print(merged_df)print('2.outer全连接,合并数据'.center(40, '-'))
merged_df = df1.merge(df2, on='诗人', how='outer')
print(merged_df)print('3.left(左连接)合并数据'.center(40, '-'))
merged_df = df1.merge(df2, on='诗人', how='left')
print(merged_df)print('4.right(右连接)合并数据'.center(40, '-'))
merged_df = df1.merge(df2, on='诗人', how='right')
print(merged_df)

输出结果:我们通过on='诗人’参数指定了要按照’诗人’列进行合并。默认情况下,merge()方法会使用内连接(inner join),只会保留两个DataFrame中都有的行。如果你想要保留两个DataFrame中的所有行,可以使用how='outer’参数来执行外连接(outer join)。

-------------原始DataFrame数据1-------------诗人  朝代
0   李白   唐
1   苏轼  北宋
2  李清照   宋
3   杜甫   唐
4   岳飞  南宋
-------------原始DataFrame数据2-------------诗人 性别  芳龄
0  李清照  女  15
1   杜甫  男  13
2   李白  男  18
3   苏轼  男  27
------------1.inner(内连接,是默认参数)合并数据------------诗人  朝代 性别  芳龄
0   李白   唐  男  18
1   苏轼  北宋  男  27
2  李清照   宋  女  15
3   杜甫   唐  男  13
-------------2.outer全连接合并数据-------------诗人  朝代   性别    芳龄
0   李白   唐    男  18.0
1   苏轼  北宋    男  27.0
2  李清照   宋    女  15.0
3   杜甫   唐    男  13.0
4   岳飞  南宋  NaN   NaN
---------3.left(左连接)合并数据----------诗人  朝代   性别    芳龄
0   李白   唐    男  18.0
1   苏轼  北宋    男  27.0
2  李清照   宋    女  15.0
3   杜甫   唐    男  13.0
4   岳飞  南宋  NaN   NaN
------------4.right(右连接)合并数据------------诗人  朝代 性别  芳龄
0  李清照   宋  女  15
1   杜甫   唐  男  13
2   李白   唐  男  18
3   苏轼  北宋  男  27

3.关于参数how用于指定连接类型理解:
在这里插入图片描述
‘left’:左连接,这是默认值。只保留左侧DataFrame中的所有行,如果在键列中没有匹配的行,则填充NaN。

‘right’:右连接。只保留右侧DataFrame中的所有行,如果在键列中没有匹配的行,则填充NaN。
‘outer’:全连接。保留左侧和右侧DataFrame中的所有行,如果在键列中没有匹配的行,则填充NaN。
‘inner’:内连接。只保留在键列中同时出现在左侧和右侧的行。

完毕!!感谢您的收看

----------★★历史博文集合★★----------

我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具
在这里插入图片描述

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

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

相关文章

@RequestMapping处理请求异常

使用RequestMapping不指定请求方式,多种请求方式都支持。 Get格式FORM_URLENCODED Content-Typeapplication/x-www-form-urlencoded URL形式传参,请求体里面的内容是:usernamejohnexample.com&passwordsecretpassword&grant_type…

C语言之位段(详解)

C语言之位段 文章目录 C语言之位段1. 位段的介绍2. 位段的内存分配3. 位段跨平台问题4. 位段的应用5. 位段使用注意 1. 位段的介绍 位段(bit-field)是C语言中的一种特殊数据类型,它允许将一个字节分成几个部分,并为每个部分指定特…

深入解析JVM内存结构:Metaspace、堆与垃圾收集器

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

SHAP(五):使用 XGBoost 进行人口普查收入分类

SHAP(五):使用 XGBoost 进行人口普查收入分类 本笔记本演示了如何使用 XGBoost 预测个人年收入超过 5 万美元的概率。 它使用标准 UCI 成人收入数据集。 要下载此笔记本的副本,请访问 github。 XGBoost 等梯度增强机方法对于具有…

最小生成树算法

文章目录 最小生成树概述 P r i m Prim Prim 算法 - 稠密图 - O ( n 2 ) O(n^2) O(n2)思路概述时间复杂度分析AcWing 858. Prim算法求最小生成树CODE K r u s k a l Kruskal Kruskal 算法 - 稀疏图 - O ( m l o g m ) O(mlogm) O(mlogm)思路解析时间复杂度分析AcWing 859. Kr…

管理类联考-性质

性质 ——性质—— 一、是什么 (1)本质:判断一定范围内的对象是否具备某个性质的命题就是性质命题(直言命题)。直言命题是断定事物/对象是否具有某种性质的命题。直言命题在结构上由主项、谓项、联项和量项组成。 &am…

制作一个RISC-V的操作系统一-计算机系统漫游

文章目录 计算机的硬件组成两种架构程序的存储与执行程序语言的设计和进化一个mini计算机 编程语言的进化存储设备的层次结构操作系统 计算机的硬件组成 所有硬件由总线连接起来 两种架构 总线个数不同,Memory储存内容不同 程序的存储与执行 首先编译和链接某…

【STM32】STM32学习笔记-课程简介(1)

00. 目录 文章目录 00. 目录01. 课程简介02. 硬件设备03. 软件工具04. 硬件套件4.1 面包板和跳线/飞线4.2 杜邦线和STM32最小系统板4.3 STLINK和OLED显示屏4.4 LED和按键4.5 电位器和蜂鸣器4.6 传感器和旋转编码器4.7 USB转串口和MPU60504.8 Flash闪存和电机模块4.9 SG90舵机 0…

Wireshark使用详解

wireshark简介 wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。   wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容&#…

【送书活动三期】解决docker服务假死问题

工作中使用docker-compose部署容器,有时候会出现使用docker-compose stop或docker-compose down命令想停掉容器,但是依然无法停止或者一直卡顿在停止中的阶段,这种问题很让人头疼啊! 目录 问题描述问题排查问题解决终极杀招-最粗暴…

解决了布局问题1和布局问题2,接下来,你的Main函数如果写成下面这样,直接运行,什么也不会显示?

> if __name____main__:app QApplication(sys.argv)MainWindow QMainWindow()ui Ui_MainWindow()ui.setupUi(MainWindow)MainWindow.show()app.exec()什么也不会显示 如果你不想修改main中的内容,必须在class Ui_MainWindow(QWidget) 类中添加一个初始化方法…

【开源存储】glusterfs分布式文件系统部署实践

文章目录 一、前言1、介绍说明2、术语说明3、冗余模式3.1、复制卷(Replication)3.2、纠删卷(Erasure Code) 二、部署说明1、软件安装2、集群部署2.1、前置准备2.2、部署过程a、添加节点b、配置存储c、创建glusterfs卷d、客户端挂载…

ffmpeg 任意文件读取漏洞/SSRF漏洞 (CVE-2016-1897/CVE-2016-1898)

漏洞描述 影响范围 FFmpeg 2.8.x < 2.8.5FFmpeg 2.7.x < 2.7.5FFmpeg 2.6.x < 2.6.7FFmpeg 2.5.x < 2.5.10 漏洞环境及利用 搭建docker环境 访问8080端口看到上传界面 由于vulhub并没有讲述该漏洞如何复现&#xff0c;我们需要进入环境查看源码 <?php if(!…

C语言——I /深入理解指针(二)

一、数组名的理解 int arr[10] {1,2,3,4,5,6,7,8,9,10}; int *p &arr[0];这⾥我们使⽤ &arr[0] 的⽅式拿到了数组第⼀个元素的地址&#xff0c;但是其实数组名本来就是地址&#xff0c;⽽且 是数组⾸元素的地址&#xff0c;我们来做个测试。 #include <stdio.…

高端大气简历模板(精选8篇)

想要让简历在众多求职者中脱颖而出&#xff0c;吸引HR的眼球吗&#xff0c;可以看看这8篇精选的高端大气简历模板&#xff01;本文为大家提供了多种行业、职位的简历案例&#xff0c;助大家打造一份令人惊艳的简历&#xff0c;轻松斩获心仪职位&#xff01; 高端大气简历模板下…

spring boot定时器实现定时同步数据

文章目录 目录 文章目录 前言 一、依赖和目录结构 二、使用步骤 2.1 两个数据源的不同引用配置 2.2 对应的mapper 2.3 定时任务处理 总结 前言 一、依赖和目录结构 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifa…

【ArcGIS Pro微课1000例】0040:ArcGIS Pro创建北极点、南极点

文章目录 一、创建北极点图层二、创建北极点三、不同投影系下北极点的位置一、创建北极点图层 选择一个数据库,在上面右键→新建→要素类。 输入名称:北极点。 空间参考:WGS 1984 点击创建。 二、创建北极点 在编辑选项卡下,点击【创建】。 在创建要素窗口中,点击北极点…

Python 爬虫 之scrapy 框架

文章目录 常用的命令开始爬虫请求与响应让控制台只输出想要的信息创建一个py 文件来帮忙运行爬虫 工作原理图实战 常用的命令 Scrapy是一个用于爬取网站数据的Python框架&#xff0c;以下是一些常用的Scrapy命令&#xff1a; 开始的时候 用 cd 进入你想创建scrapy 的文件夹 &a…

第十一届蓝桥杯青少组省赛Python中高级组真题及赏析

练习最好的办法就是实战。拿真题来做&#xff0c;不是解析是赏析。带着欣赏的眼光看&#xff0c;题目不但不难&#xff0c;反倒增加不少乐趣。接下来揭开第十一届蓝桥杯青少组省赛python编程题的神秘面纱&#xff0c;我们来一一赏析&#xff0c;看难不难。 选择题 选择题都比较…

Python遥感开发之批量拼接

Python遥感开发之批量拼接 1 遥感图像无交错的批量拼接2 遥感图像有交错的批量拼接 前言&#xff1a;主要借助python实现遥感影像的批量拼接&#xff0c;遥感影像的批量拼接主要分为两种情况&#xff0c;一种是遥感图像无交错&#xff0c;另一种情况是遥感图像相互有交错。具体…