Python 按照某列内容对两个DataFrame进行合并

2023-11-13

要将两个DataFrame进行合并,如data1 和 data2按照第一列的内容纵向合并为一个新的DataFrame,可以使用pandas库中的merge()方法,按照实际需求将how参数设置为‘left’、‘right’、‘outer’、‘inner’。其中:

  • inner: 内连接/交集。保留两个 DataFrame 共有的键,丢弃不匹配的行。
  • outer: 外连接/并集。保留两个 DataFrame 所有的键,缺失的值用 NaN 填充。
  • left: 左连接。保留左边 DataFrame 的所有键,丢弃不匹配的右边 DataFrame 的行。
  • right: 右连接。保留右边 DataFrame 的所有键,丢弃不匹配的左边 DataFrame 的行。

假设data1表示如下:

  col1  col2
0    A     1
1    B     2
2    C     3

data2表示如下:

  col1 col3
0    A    x
1    B    y
2    D    z

将col1作为合并的基准,使用"how = inner",代码和结果如下:

import pandas as pd
data1 = {'col1': ['A', 'B', 'C'], 'col2': [1, 2, 3]}
data2 = {'col1': ['A', 'B', 'D'], 'col3': ['x', 'y', 'z']}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
merged_df = pd.merge(df1, df2, on='col1', how='inner')
print(merged_df)
  col1  col2 col3
0    A     1    x
1    B     2    y

将col1作为合并的基准,使用"how = outer",代码和结果如下:

merged_df = pd.merge(df1, df2, on='col1', how='outer')
  col1  col2 col3
0    A   1.0    x
1    B   2.0    y
2    C   3.0  NaN
3    D   NaN    z

将col1作为合并的基准,使用"how = left",代码和结果如下:

merged_df = pd.merge(df1, df2, on='col1', how='left')
  col1  col2 col3
0    A     1    x
1    B     2    y
2    C     3  NaN

将col1作为合并的基准,使用"how = right",代码和结果如下:

merged_df = pd.merge(df1, df2, on='col1', how='right')
  col1  col2 col3
0    A   1.0    x
1    B   2.0    y
2    D   NaN    z

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 按照某列内容对两个DataFrame进行合并 的相关文章

随机推荐

  • 硅谷裁员10万人,一个时代结束了!

    见字如面 我是军哥 2022年7月 微软宣布裁员计划 裁员规模不超过18万员工总数的1 并于10月18日 试裁 1千人左右 11月10日 Meta的创始人兼CEO扎克伯格发布全员信 确认公司将裁员逾11000人 这是这家科技巨头18年来历史
  • 李雅普诺夫函数设计

    一 线性时不变系统 1 1 原理 对于线性时不变系统 x A
  • 一天内时针和分针重叠的次数

    一天内时针和分针重叠的次数 这是一道谷歌面试题 答案是22次 分别是上午 12 00 1 05 2 11 3 16 4 22 5 27 6 33 7 38 8 44 9 49 10 55 下午12 00 1 05 2 11 3 16 4 2
  • 动态链接库中函数的地址确定---PLT和GOT

    动态链接库中函数的地址确定 PLT和GOT 2012 09 16 20 27 42 分类 C C 前面写过动态链接库 延迟绑定的一篇博文 那篇文章我非常喜欢 但是当时刚搞清楚 自己写的比较凌乱 我最近学习了Ulrich Drepper的Ho
  • Android:寒冬已至?真正厉害的人永远没有寒冬,一次关于JVM的面试经历

    1 3 Android开发的天花板 很多人会觉得Android技术深度不深 技术栈不庞大 Android职业发展有限 这个真是大大的误解 先说技术上 Android的技术栈随着时间的推移变得越来越庞大 细分领域也越来越多 主要有Androi
  • js创建 tcp 服务器史上最快教程

    实现步骤 第一步 引入相应的包 第一步 导入net包 var net require net 第二步 创建服务器 第一步 导入net包 var net require net 第二步 创建服务器 var server net createS
  • cad尺寸标注快捷键_CAD快速标注方法你知道几种?

    CAD标注是快速出图的关键 尺寸标错 都会导致加工产品出错 那么如何快速准确地进行标注呢 这里给大家整理了CAD标注的一些方法 你知道几种呢 一 CAD自带一键标注方法 1 CAD一次性标注 qdim 输入快捷键qdim 框选需要标注的对象
  • Python 银行信用卡客户流失预测(kaggle)

    1 背景 越来越多的客户不再使用信用卡服务 银行的经理对此感到不安 如果有人能为他们预测哪些客户即将流失 他们将不胜感激 因为这样他们可以主动向客户提供更好的服务 并挽回这些即将流失的客户 2 数据集 该数据集由10 000个客户组成 其中
  • 开关电源一】电源拓扑之buck、boost、buck-boost

    目录 1 BUCK变换器 1 1 Buck电路工作原理 1 2 Buck电路输入输出关系推导 2 BOOST变换器 2 1 Boost电路工作原理 2 2 Boost电路输入输出关系推导 3 BUCK BOOST变换器 3 1 Buck B
  • shell脚本操作

    一 Shell介绍 Shell 和python都是弱语言 定义变量规则 变量名 值 1 shell定义变量的规则 1 等号两边不能有空格 2 定义特殊的变量需要用单引号或者双引号结合 3 定义linux命令需要用反单引号 区分单引号和双引号
  • DIV怎么自动添加滚动条?并给滚动条添加样式

    一 如何实现当DIV里的内容超过DIV的高度 DIV会自动添加滚动条 1 div的style设置了overflow auto后 当DIV里的内容超过DIV的高度 DIV会自动添加滚动条 拉动滚动条才能看到底 2 overflow y属性指定
  • 如何用VUE从零创建网站

    1 如何建一个网站 围绕主题 查看一些大型网站是如何设计的 自己对主题有一定了解后 设计草图 包括功能 逻辑跳转 页面大致排版等 项目成员和老师对草图设计提出意见 再进行修改 最后才到正式开发 网站推荐 松果互联 免费高级WordPress
  • 如何用手机做兼职赚钱?教你利用闲鱼赚取生活费!

    众所周知 越来越多的人光靠朝九晚五的工作薪资 已经远远满足不了生活需求 所以越来越多的人在找一些靠谱的兼职去提高收入 不过网络上的兼职多种多样 有些人通过兼职挣了些钱 而大部分人则被各种 套路 不仅没挣到钱 还被收了智商费 像网上流行的什么
  • Eclipse不能启动:JVM terminated. Exit code=-1

    JVM terminated Exit code 1 Dosgi requiredJavaVersion 1 5 Xms40m Xmx512m XX MaxPermSize 256M Djava class path D eclipse p
  • 你期待的Photoshop 2022中哪个功能吸引了你?

    万众瞩目的2022年已经到来 那些大软件的最新大版本也陆续走到我们的面前 看到很多人都在追捧的期待Photoshop 2022 你知道ta具体有哪些变化么 来看看吧 创意世界在 Photoshop 上运行 全世界数以百万计的设计师 摄影师和
  • Java入门(4)——常见的String方法

    考虑到API当中的解释 新手可能有点看不懂 我刚开始就是不太看得懂 最好的学习方法当然是是自己一个一个去试一遍 然后就可以加深印象 然后 这是我当初学习的时候用自己的大白话做的笔记 现在查阅的话我还是喜欢看自己做的这些笔记 如果我有什么理解
  • VS2022的简单设置

    一 创建一个C C 的VS新项目 1 单击右侧 创建新项目 2 语言选择 C 选择 所有平台 桌面 选择 windows桌面向导 最单击下一步 3 为项目取一个名字 放在合适的位置上 单击 创建 在弹出的窗口点击 空项目 最后单击完成 完成
  • DataX :文本文件 -> mysql 的使用及安装教程

    DataX安装环境准备 jdk1 6以上 python2 0 DataX安装 1 官网下载DataX https github com gkbattle13 DataX 点击Download下载地址 2 解压DataX tar zxvf d
  • typescript任意类型

    1 any类型 如果不声明类型 会自动设置为any类型 但是会失去TS类型检测的作用 let anys any str anys 123 anys anys true anys anys Symbol 123 2 unknown类型 let
  • Python 按照某列内容对两个DataFrame进行合并

    要将两个DataFrame进行合并 如data1 和 data2按照第一列的内容纵向合并为一个新的DataFrame 可以使用pandas库中的merge 方法 按照实际需求将how参数设置为 left right outer inner