获取两个 DataFrame 中某两列相同的项

news/2024/9/24 8:36:17/文章来源:https://www.cnblogs.com/conpi/p/18428298

要获取两个 DataFrame 中某两列相同的项,可以使用 pandasmerge 方法或 isin 方法。以下是两种方法的示例。

方法 1: 使用 merge

merge 方法可以用来根据多个列将两个 DataFrame 合并。通过设置 how='inner',可以得到两个 DataFrame 中在指定列上相同的项。

import pandas as pd# 创建两个示例 DataFrame
df1 = pd.DataFrame({'ID': [1, 2, 3, 4, 5],'Value': ['A', 'B', 'C', 'D', 'E']
})df2 = pd.DataFrame({'ID': [3, 4, 5, 6, 7],'Value': ['C', 'D', 'E', 'F', 'G']
})# 使用 merge 查询相同项
common_items = pd.merge(df1, df2, on=['ID', 'Value'], how='inner')# 输出结果
print(common_items)

方法 2: 使用 isin

如果你只想获取在某两列中相同的项,可以使用 isin 方法结合布尔索引。以下是示例代码:

import pandas as pd# 创建两个示例 DataFrame
df1 = pd.DataFrame({'ID': [1, 2, 3, 4, 5],'Value': ['A', 'B', 'C', 'D', 'E']
})df2 = pd.DataFrame({'ID': [3, 4, 5, 6, 7],'Value': ['C', 'D', 'E', 'F', 'G']
})# 查询 df1 中 (ID, Value) 在 df2 中存在的项
common_items = df1[(df1['ID'].isin(df2['ID'])) & (df1['Value'].isin(df2['Value']))]# 输出结果
print(common_items)

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

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

相关文章

让人眼前一亮的开源项目「GitHub 热点速览」

时隔两周,我又带着让人眼前一亮的开源项目回来了! 告别数据线、蓝牙、WiFi 和网络,只需用手机的摄像头扫描一张动图条形码(需安装应用),就能在设备间传输文件的 libcimbar,一款无需联网和蓝牙的文件传输工具,仅用摄像头传输数据。用 Rust 编写的 PostgreSQL 数据库命令…

Redis系列补充:聊聊布隆过滤器(go语言实践篇)

★ Redis24篇集合 1 介绍 布隆过滤器(Bloom Filter)是 Redis 4.0 版本之后提供的新功能,我们一般将它当做插件加载到 Redis Service服务器中,给 Redis 提供强大的滤重功能。 它是一种概率性数据结构,可用于判断一个元素是否存在于一个集合中。相比较之 Set 集合的去重功能…

伯克利函数调用排行榜(BFCL)

自 2022 年底以来,大语言模型(LLMs)凭借其执行通用任务的强大能力,成为众人关注的焦点。不仅限于聊天应用,将这些模型应用于开发各类 AI 应用和软件(如 Langchain, Llama Index, AutoGPT, Voyager)已成为一种趋势。GPT, Gemini, Llama, Mistral 等模型通过与外部世界的交…

读构建可扩展分布式系统:方法与实践13可扩展的事件驱动处理

可扩展的事件驱动处理1. 可扩展的事件驱动处理 1.1. 使用消息传递系统进行通信,你可以创建松耦合的架构1.1.1. 消息生产者只是将消息存储在队列中,而不用关心消费者如何处理消息1.1.2. 有一个或多个消费者,并且生产者和消费者的集合可以随着时间的推移而改变1.1.3. 有助于提…

java基础 -反射笔记

710,反射快速入门 代码: 先创建一个 re.properties 文件:classfullpath=com.hspedu.Cat method=hiCat.javapackage com.hspedu;public class Cat {private String name = "招财猫";public void hi() { //常用方法System.out.println("hi " + name);} …

全网最适合入门的面向对象编程教程:52 Python函数方法与接口-Protocol协议与接口

在Python中,协议(Protocol)和接口(Interface)是用于定义类和对象之间交互的一种方式,特别是在实现多态性和代码可重用性时,协议是一种抽象概念,描述了对象所需实现的方法和属性,而不关心具体的类或实现。全网最适合入门的面向对象编程教程:52 Python 函数方法与接口-…

机器学习第6次作业

机器学习作业6 学号:102102156 姓名:高涛 1. 朴素贝叶斯与KNN分类性能比较 1.1 代码1.2 绘制结果2.维数约简可视化 2.1 代码2.2 绘制结果3.1 降维前后分类精度比较 3.1 代码同上 3.2绘制结果

Docker 部署 vue 项目

概述 技术栈:docker + vue + nginx 1、docker下载安装 nginx docker pull nginx2、创建nginx挂载目录 /usr/local/nginx (可根据自己需要存放文件的位置自行创建目录) mkdir -p /usr/local/nginx3、vim 创建default.conf server {listen 80;server_name localhost;#c…

TCP协议三次握手的个人理解

TCP协议的核心是可靠的数据传输,而保证传输是可靠的那就要求客户端和服务端双方都具备正常的收发功能。 基于此,第一次握手的时候,当服务端接收到这个SYN请求时,表明客户端要进行TCP连接,同步序列号seq=x,那么从服务端的角度来看: 1、客户端的发送能力是正常的; 服务端…

[vulnhub]LAMPSecurity: CTF5

https://www.vulnhub.com/entry/lampsecurity-ctf5,84/主机发现端口扫描探测存活主机,139为靶机 nmap -sP 192.168.75.0/24 Starting Nmap 7.93 ( https://nmap.org ) at 2024-09-23 17:27 CST Nmap scan report for 192.168.75.1 Host is up (0.00049s latency). MAC Address…

jni安全利用的简单学习

首先定义一个最简单的类 public class EvilClass {public static native String execCmd(String cmd); } 因为我是MacOs端,在当前目录执行 javac EvilClass.java javac -h . EvilClass.java 生成 EvilClass.h 文件 /* DO NOT EDIT THIS FILE - it is machine generated */ #i…