参考: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. PAT 乙级 1013.数素数 C++/Java

    题目来源 令 P​i​​ 表示第 i 个素数.现任给两个正整数 M≤N≤10​4​​,请输出 P​M​​ 到 P​N​​ 的所有素数. 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔. 输出 ...

  2. 后台返回的base64的图片格式,前端如何转为普通的图片格式

    在上一篇的博客当中,写了前端如何将普通的图片格式转为base64的图片,今天开发的时候遇到了后台返回的图片格式是base64的,我这边需要把base64的图片格式转为普通的,搜了一下js的方法,感觉很 ...

  3. iframe跨域修改子页面内容或样式

    哈哈 当然不能啦 要是能修改百度logo早就是我的头像了

  4. 兑换零钱-(dp)

    https://ac.nowcoder.com/acm/contest/910/B 本以为是组合数,没想到是dp求解,变成水题了,让我想起了第一次见到dp的爬楼梯,可以走一步和走两步,走40步,这里相 ...

  5. [React] Write a generic React Suspense Resource factory

    Using Suspense within our component isn't exactly ergonomic. Let's put all that logic into a reusabl ...

  6. codeforces B. A and B 找规律

    Educational Codeforces Round 78 (Rated for Div. 2) 1278B - 6 B. A and B  time limit per test 1 secon ...

  7. random库

    伪随机数的原因: random库中函数主要用于产生各种分布的伪随机数序列.random库中的随机函数是按照一定算法模拟产生的,其概率是确定的.可见的,所以被称为伪随机数.而真正意义上的随机数是按照实验 ...

  8. space-cloud 学习一 基本试用

    space-cloud 是一个支持多数据库,以下是一个简单的基于官方文档的试用 使用docker-compose 运行 环境准备 下载docker-compose文件 wget https://raw ...

  9. 关于单片机的RAM

    一块RAM 分为了 堆 和 栈   名词而已,知道就可以了, 各种内存溢出问题: 全局数组访问越界 出现的问题:直接重启,或者死机 解决办法 :  额,写好自己的程序吧!!!!!!! 函数的局部变量过 ...

  10. bzoj3676 [Apio2014]回文串 卡常+SAM+树上倍增

    bzoj3676 [Apio2014]回文串 SAM+树上倍增 链接 bzoj luogu 思路 根据manacher可以知道,每次暴力扩展才有可能出现新的回文串. 所以推出本质不同的回文串个数是O( ...