浅谈pandas筛选出表中满足另一个表所有条件的数据方法


Posted in Python onFebruary 08, 2019

今天记录一下pandas筛选出一个表中满足另一个表中所有条件的数据。例如:

list1 结构:名字,ID,颜色,数量,类型。

list1 = [['a',1,255,100,'03'],['a',2,481,50,'06'],['a',47,255,500,'03'],['b',3,1,50,'11']]

list2结构:名字,类型,颜色。

list2 = [['a','03',255],['a','06',481]]

如何在list1中找出所有与list2中匹配的元素?要得到下面的结果:list = [['a',1,255,100,'03'],['a',2,481,50,'06'],['a',47,255,500,'03']]。

首先将两个list转化为dataframe.

list1 = [['a',1,255,100,'03'],['a',2,481,50,'06'],['a',47,255,500,'03'],['b',3,1,50,'11']]
df1=pd.DataFrame(list1,columns=["名字","ID","颜色","数量","类型"])
list2 = [['a','03',255],['a','06',481]]
df2=pd.DataFrame(list2,columns=["名字","类型","颜色"])

数据结构如下:

浅谈pandas筛选出表中满足另一个表所有条件的数据方法

然后利用pandas.merge函数将其进行内连接。

这个函数的语法是:

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)。这函数连接方式和sql的连接类似,由参数how来控制。

最后的代码如下:

import pandas as pd
list1 = [['a',1,255,100,'03'],['a',2,481,50,'06'],['a',47,255,500,'03'],['b',3,1,50,'11']]
df1=pd.DataFrame(list1,columns=["名字","ID","颜色","数量","类型"])
list2 = [['a','03',255],['a','06',481]]
df2=pd.DataFrame(list2,columns=["名字","类型","颜色"])
df=pd.merge(df1,df2,how='inner',on=["名字","类型","颜色"],right_index=True)
df.sort_index(inplace=True)
print(df)

返回结果按照左表的顺序输出:

浅谈pandas筛选出表中满足另一个表所有条件的数据方法

以上这篇浅谈pandas筛选出表中满足另一个表所有条件的数据方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python程序语言快速上手教程
Jul 18 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
Mar 12 Python
python运行其他程序的实现方法
Jul 14 Python
Pycharm远程调试openstack的方法
Nov 21 Python
Python2.7下安装Scrapy框架步骤教程
Dec 22 Python
Python自定义函数定义,参数,调用代码解析
Dec 27 Python
python分布式编程实现过程解析
Nov 08 Python
基于Python的图像阈值化分割(迭代法)
Nov 20 Python
python中字符串的编码与解码详析
Dec 03 Python
Python中读取文件名中的数字的实例详解
Dec 25 Python
python pygame 愤怒的小鸟游戏示例代码
Feb 25 Python
关于PySnooper 永远不要使用print进行调试的问题
Mar 04 Python
pandas dataframe添加表格框线输出的方法
Feb 08 #Python
python读取有密码的zip压缩文件实例
Feb 08 #Python
对python判断是否回文数的实例详解
Feb 08 #Python
用Python解决x的n次方问题
Feb 08 #Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
Feb 07 #Python
Python实现E-Mail收集插件实例教程
Feb 06 #Python
使用TensorFlow实现二分类的方法示例
Feb 05 #Python
You might like
PHP与javascript对多项选择的处理
2006/10/09 PHP
强烈推荐:php.ini中文版(1)
2006/10/09 PHP
php SQL防注入代码集合
2008/04/25 PHP
php中显示数组与对象的实现代码
2011/04/18 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
2012/09/13 PHP
php使用codebase生成随机数
2014/03/25 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
PHP实现查询两个数组中不同元素的方法
2016/02/23 PHP
解决在Laravel 中处理OPTIONS请求的问题
2019/10/11 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
chrome下img加载对height()的影响示例探讨
2014/05/26 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
2017/02/14 Javascript
原生js实现放大镜
2017/02/20 Javascript
seajs实现强制刷新本地缓存的方法分析
2017/10/16 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
2018/04/21 Javascript
Webpack devServer中的 proxy 实现跨域的解决
2018/06/15 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
python获取标准北京时间的方法
2015/03/24 Python
Python中优化NumPy包使用性能的教程
2015/04/23 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
2019/11/01 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
乡镇干部十八大感言
2014/02/17 职场文书
认购协议书范本
2014/04/22 职场文书
代理协议书
2014/04/22 职场文书
机关工会工作总结2015
2015/05/26 职场文书
匿名信格式范文
2015/05/27 职场文书
Mysql 设置boolean类型的操作
2021/06/04 MySQL
Python激活Anaconda环境变量的详细步骤
2021/06/08 Python
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python
图神经网络GNN算法
2022/05/11 Python