参考:pandas筛选出表中满足另一个表所有条件的数据

参考:pandas:匹配两个dataframe

使用 pd.merge 来实现

on 表示查询的 columns,如果都有 id,那么这是很好的区别项,找到 id 相同的进行merge。

>>> import numpy as np

>>> import pandas as pd

>>> data1 = {
'one': pd.Series([1,2,3]),
'two': pd.Series([11,22,33])
} >>> df1 = pd.DataFrame(data = data1) >>> df1 one two
0 1 11
1 2 22
2 3 33
>>> data2 = {
'one': pd.Series([1,2,3,4,5,6]),
'two': pd.Series([11,22,33]),
'three': pd.Series([111,222,333]),
'four': pd.Series([1111,2222,3333,4444,5555,6666])
} >>> df2 = pd.DataFrame(data = data2) >>> df2 one two three four
0 1 11.0 111.0 1111
1 2 22.0 222.0 2222
2 3 33.0 333.0 3333
3 4 NaN NaN 4444
4 5 NaN NaN 5555
5 6 NaN NaN 6666
>>> df2[df2['one']<3] one two three four
0 1 11.0 111.0 1111
1 2 22.0 222.0 2222 >>> df = pd.merge(df1, df2, how='inner') >>> df one two three four
0 1 11 111.0 1111
1 2 22 222.0 2222
2 3 33 333.0 3333
>>> df1 one two
0 1 11
1 2 22
2 3 33
>>> df2 one two three four
0 1 11.0 111.0 1111
1 2 22.0 222.0 2222
2 3 33.0 333.0 3333
3 4 NaN NaN 4444
4 5 NaN NaN 5555
5 6 NaN NaN 6666
>>> pd.merge(df1, df2, how='inner') one two three four
0 1 11 111.0 1111
1 2 22 222.0 2222
2 3 33 333.0 3333
>>> pd.merge(df2, df1, how='inner') one two three four
0 1 11.0 111.0 1111
1 2 22.0 222.0 2222
2 3 33.0 333.0 3333
>>> five = pd.Series([1,2,3,4,5,6]) >>> df2['five'] = five >>> df2 one two three four five
0 1 11.0 111.0 1111 1
1 2 22.0 222.0 2222 2
2 3 33.0 333.0 3333 3
3 4 NaN NaN 4444 4
4 5 NaN NaN 5555 5
5 6 NaN NaN 6666 6
>>> df1 one two
0 1 11
1 2 22
2 3 33
>>> pd.merge(df2, df1, how='inner') one two three four five
0 1 11.0 111.0 1111 1
1 2 22.0 222.0 2222 2
2 3 33.0 333.0 3333 3
>>> pd.merge(df1, df2, how='inner') one two three four five
0 1 11 111.0 1111 1
1 2 22 222.0 2222 2
2 3 33 333.0 3333 3
>>> df1 one two
0 1 11
1 2 22
2 3 33
>>> df2 one two three four five
0 1 11.0 111.0 1111 1
1 2 22.0 222.0 2222 2
2 3 33.0 333.0 3333 3
3 4 NaN NaN 4444 4
4 5 NaN NaN 5555 5
5 6 NaN NaN 6666 6
>>> six = pd.Series([-1, -2, -3]) >>> df1['six'] = six >>> df1 one two six
0 1 11 -1
1 2 22 -2
2 3 33 -3
>>> df2 one two three four five
0 1 11.0 111.0 1111 1
1 2 22.0 222.0 2222 2
2 3 33.0 333.0 3333 3
3 4 NaN NaN 4444 4
4 5 NaN NaN 5555 5
5 6 NaN NaN 6666 6
>>> pd.merge(df1, df2, how='inner') one two six three four five
0 1 11 -1 111.0 1111 1
1 2 22 -2 222.0 2222 2
2 3 33 -3 333.0 3333 3
>>> pd.merge(df2, df1, how='inner') one two three four five six
0 1 11.0 111.0 1111 1 -1
1 2 22.0 222.0 2222 2 -2
2 3 33.0 333.0 3333 3 -3

【452】pandas筛选出表中满足另一个表所有条件的数据的更多相关文章

  1. 从一个表中往另外一个表中插入数据用到的SQL

    insert into jdjc_zzjcxm (zj,jcxmmc) select sys_guid(),zbmc from JDJC_WHJXXMMC;

  2. Python中用max()筛选出列表中出现次数最多的元素

    1 List = [1,2,3,4,2,3,2] # 随意创建一个只有数字的列表 2 maxTimes = max(List,key=List.count) # maxTimes指列表中出现次数最多的 ...

  3. Linux 在 i 节点表中的磁盘地址表中,若一个文件的长度是从磁盘地址表的第 1 块到第 11 块 解析?

    面试题: 在 i 节点表中的磁盘地址表中,若一个文件的长度是从磁盘地址表的第 1 块到第 11块,则该文件共占有 B  块号.A 256 B 266 C 11 D 256×10 linux文件系统是L ...

  4. Oracle中的自连接(self join)-当表中的某一个字段与这个表中另外字段的相关时,我们可能用到自连接。

    http://blog.163.com/wkyuyang_001/blog/static/10802122820091751049479/ 当表中的某一个字段与这个表中另外字段的相关时,我们可能用到自 ...

  5. SQL存在一个表而不在另一个表中的数据, 更新字段为随机时间

    --更新字段为随机时间 86400秒=1天 UPDATE dl_robot ), ,GETDATE()) )   SQL存在一个表而不在另一个表中的数据   方法一 使用 not in ,容易理解,效 ...

  6. Oracle中如何查询一个表的所有字段名和数据类型

    Oracle中如何查询一个表的所有字段名和数据类型 查询语法 select A.COLUMN_NAME,A.DATA_TYPE from user_tab_columns A where TABLE_ ...

  7. Oracle中 如何用一个表的数据更新另一个表中的数据

    准备阶段 1.建表语句: create table table1( idd varchar2(10) , val varchar2(20) ); create table table2( idd va ...

  8. Java连接MySQL数据库。编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计。

    题目2:编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计.之后,可根据显示的内容进行某条记录的删除(以id为条 ...

  9. Oracle 中用一个表的数据更新另一个表的数据

    Oracle 中用一个表的数据更新另一个表的数据 分类: SQL/PLSQL2012-05-04 15:49 4153人阅读 评论(1) 收藏 举报 oraclemergesubqueryinsert ...

随机推荐

  1. 如何让自己的Dev C++用上C++11标准

    首先确保Dev C++版本是最新的5.11版 其实用C++11标准的语法去运行还是会出现结果的,最多warning一下 但完美主义者是不允许这样的 我们可以点击菜单栏的“工具”->“编译选项”进 ...

  2. Cleaning Robot POJ - 2688

    题目链接:https://vjudge.net/problem/POJ-2688 题意:在一个地面上,有一个扫地机器人,有一些障碍物,有一些脏的地砖,问,机器热能不能清扫所有的地砖, (机器人不能越过 ...

  3. rn 环境搭建

    https://reactnative.cn/docs/next/getting-started.html 搭建开发环境 欢迎使用 React Native!这篇文档会帮助你搭建基本的 React N ...

  4. 一次性开启discuz所有版块的 [audio] [video] [flash] 等多媒体代码

    开启全部版块的sql语句是: update cdb_forums set allowmediacode =1 开启指定版块的sql语句是: update cdb_forums set allowmed ...

  5. Elasticsearch Date类型,时间存储相关说明

    资料 网址 Elasticsearch 插入时间字段时数据格式问题 https://segmentfault.com/a/1190000016296983 Elasticsearch Date类型,时 ...

  6. PHP 验证Email的函数

    <?php   function validateEmail($email) {    $isValid = true;    $atIndex = strrpos($email, " ...

  7. Mac安装vue.js开发环境

    Mac安装vue.js开发环境 DannyHooDanny的专栏订阅 一.vue.js开发环境 二.初始化一个vue.js项目 三.vue.js项目打包部署 本来以为在Mac上搭建vue.js的环境挺 ...

  8. 洛谷 P1993 小K的农场 题解

    每日一题 day55 打卡 Analysis 这是我们一次考试的T1,但我忘了差分约束系统怎么写了,所以就直接输出Yes混了60分 首先转化题目: 1:表示农场 a 比农场 b 至少多种植了 c 个单 ...

  9. pg_flame postgresql EXPLAIN ANALYZE 火焰图工具

    pg_flame 是golang 编写的一个将pg的EXPLAIN ANALYZE 转换为火焰图,使用简单 以下是一个简单的demo 环境准备 docker-compose 文件   version: ...

  10. 07-图5 Saving James Bond - Hard Version (30 分)

    This time let us consider the situation in the movie "Live and Let Die" in which James Bon ...