【452】pandas筛选出表中满足另一个表所有条件的数据
使用 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筛选出表中满足另一个表所有条件的数据的更多相关文章
- 从一个表中往另外一个表中插入数据用到的SQL
insert into jdjc_zzjcxm (zj,jcxmmc) select sys_guid(),zbmc from JDJC_WHJXXMMC;
- Python中用max()筛选出列表中出现次数最多的元素
1 List = [1,2,3,4,2,3,2] # 随意创建一个只有数字的列表 2 maxTimes = max(List,key=List.count) # maxTimes指列表中出现次数最多的 ...
- Linux 在 i 节点表中的磁盘地址表中,若一个文件的长度是从磁盘地址表的第 1 块到第 11 块 解析?
面试题: 在 i 节点表中的磁盘地址表中,若一个文件的长度是从磁盘地址表的第 1 块到第 11块,则该文件共占有 B 块号.A 256 B 266 C 11 D 256×10 linux文件系统是L ...
- Oracle中的自连接(self join)-当表中的某一个字段与这个表中另外字段的相关时,我们可能用到自连接。
http://blog.163.com/wkyuyang_001/blog/static/10802122820091751049479/ 当表中的某一个字段与这个表中另外字段的相关时,我们可能用到自 ...
- SQL存在一个表而不在另一个表中的数据, 更新字段为随机时间
--更新字段为随机时间 86400秒=1天 UPDATE dl_robot ), ,GETDATE()) ) SQL存在一个表而不在另一个表中的数据 方法一 使用 not in ,容易理解,效 ...
- Oracle中如何查询一个表的所有字段名和数据类型
Oracle中如何查询一个表的所有字段名和数据类型 查询语法 select A.COLUMN_NAME,A.DATA_TYPE from user_tab_columns A where TABLE_ ...
- Oracle中 如何用一个表的数据更新另一个表中的数据
准备阶段 1.建表语句: create table table1( idd varchar2(10) , val varchar2(20) ); create table table2( idd va ...
- Java连接MySQL数据库。编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计。
题目2:编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计.之后,可根据显示的内容进行某条记录的删除(以id为条 ...
- Oracle 中用一个表的数据更新另一个表的数据
Oracle 中用一个表的数据更新另一个表的数据 分类: SQL/PLSQL2012-05-04 15:49 4153人阅读 评论(1) 收藏 举报 oraclemergesubqueryinsert ...
随机推荐
- 如何让自己的Dev C++用上C++11标准
首先确保Dev C++版本是最新的5.11版 其实用C++11标准的语法去运行还是会出现结果的,最多warning一下 但完美主义者是不允许这样的 我们可以点击菜单栏的“工具”->“编译选项”进 ...
- Cleaning Robot POJ - 2688
题目链接:https://vjudge.net/problem/POJ-2688 题意:在一个地面上,有一个扫地机器人,有一些障碍物,有一些脏的地砖,问,机器热能不能清扫所有的地砖, (机器人不能越过 ...
- rn 环境搭建
https://reactnative.cn/docs/next/getting-started.html 搭建开发环境 欢迎使用 React Native!这篇文档会帮助你搭建基本的 React N ...
- 一次性开启discuz所有版块的 [audio] [video] [flash] 等多媒体代码
开启全部版块的sql语句是: update cdb_forums set allowmediacode =1 开启指定版块的sql语句是: update cdb_forums set allowmed ...
- Elasticsearch Date类型,时间存储相关说明
资料 网址 Elasticsearch 插入时间字段时数据格式问题 https://segmentfault.com/a/1190000016296983 Elasticsearch Date类型,时 ...
- PHP 验证Email的函数
<?php function validateEmail($email) { $isValid = true; $atIndex = strrpos($email, " ...
- Mac安装vue.js开发环境
Mac安装vue.js开发环境 DannyHooDanny的专栏订阅 一.vue.js开发环境 二.初始化一个vue.js项目 三.vue.js项目打包部署 本来以为在Mac上搭建vue.js的环境挺 ...
- 洛谷 P1993 小K的农场 题解
每日一题 day55 打卡 Analysis 这是我们一次考试的T1,但我忘了差分约束系统怎么写了,所以就直接输出Yes混了60分 首先转化题目: 1:表示农场 a 比农场 b 至少多种植了 c 个单 ...
- pg_flame postgresql EXPLAIN ANALYZE 火焰图工具
pg_flame 是golang 编写的一个将pg的EXPLAIN ANALYZE 转换为火焰图,使用简单 以下是一个简单的demo 环境准备 docker-compose 文件 version: ...
- 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 ...