今天记录一下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.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筛选出表中满足另一个表所有条件的数据方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

python两个表格相同数据筛选的方法_浅谈pandas筛选出表中满足另一个表所有条件的数据方法...相关推荐

  1. python数学库的使用方法_浅谈numpy库的常用基本操作方法

    NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推.在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量.比如说,二维数组相当于是一个一维数 ...

  2. python static方法_浅谈python 类方法/静态方法

    1.类方法 类方法是从属于"类对象"的方法.类对象可以通过装饰器@classmethod来定义,具体格式如下: @classmethod def 类方法名(cls [, 形参列表] ...

  3. 大数据审计的发展_浅谈大数据时代下审计工作的发展方向

    浅谈大数据时代下审计工作的发展方向 李寒梅 [摘 要] [ 摘 要 ] 随着信息化水平不断提升,企业的审计工作需要处理海量的数 据,而利用常规软件难以对海量数据进行处理,这就需要应用大数据技术.审 计 ...

  4. Excel如何从另一个表中自动提取另一个表对应的数据?

    1.打开一个excel表格,以班级数据为例: 2.打开原始数据表格表2,这里模拟了一些数据. 3.回到表一,光标选中班级单元格: 4.输入=vl会自动匹配公式,双击VLOOKUP,如果没有匹配的就手动 ...

  5. python定义私有变量的方法_浅谈Python中的私有变量

    私有变量表示方法 在变量前加上两个下划线的是私有变量.class Teacher(): def __init__(self,name,level): self.__name=name self.__l ...

  6. 查询一个表中在另一个表中没有的数据

    截止目前已经是遇到不下两次了,这次记录一下,以作后续参考 采用not in的方式, – 注意点:not in仅限于查询单个字段,故如果查询全部信息需要进行嵌套查询 –下面是示例sql查询语句: SEL ...

  7. python颜色识别_浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法

    [更新]主要提供两种方案: 方案一:(参考网上代码,感觉实用性不是很强)使用PIL截取图像,然后将RGB转为HSV进行判断,统计判断颜色,最后输出RGB值 方案二:使用opencv库函数进行处理.(效 ...

  8. python在园林中的应用_浅谈环境艺术在城市园林中的应用

    梁仟议华海新 摘要:环境艺术起源于人对自然环境的美化.改善和利用自然改善环境这两种需求.自从人类掌握了种植术后,建立起了菜园.果园.苗圃:学会饲养后,围成了牧园.环境艺术就开始植根于人类这些最早的造园 ...

  9. python除数为0报错_浅谈pandas dataframe对除数是零的处理

    如下例 data2['营业成本率'] = data2['营业成本本年累计']/data2['营业收入本年累计']*100 但有营业收入本年累计为0的情况, 则营业成本率为inf,即无穷大,而需要在表中 ...

  10. mysql 多租户_数据层的多租户浅谈

    数据层的多租户浅谈 刘 盛彬, 任 乐天, 和 陈 争云 2013 年 12 月 26 日发布 在上一篇"浅析多租户在 Java 平台和某些 PaaS 上的实现"中我们谈到了应用层 ...

最新文章

  1. MYSQL局域网访问设置
  2. jsp图片墙_JS实现的非常漂亮的3D立体照片墙显示效果
  3. CF1534F:Falling Sand(tarjan、贪心、dp)
  4. java类与继承的执行顺序
  5. Linux创建进程必须fork么,Linux - fork() 创建进程
  6. 为信息产业自主化而奋斗,第一本龙芯平台的Linux内核书来了!
  7. Simulink Memory vs Unit Delay
  8. JZOJ_3928. 射击 (Standard IO)
  9. 【元胞自动机】基于matlab元胞自动机双边教室疏散【含Matlab源码 1208期】
  10. ios备忘录下载安卓版_ios8备忘录app软件下载
  11. Java汽车租赁系统[源码+数据库]
  12. 如何用VBA寻找指定区域中的第一个非空单元格
  13. 使用 cajViewer 将 caj文件 转换 pdf文件
  14. Fedora14 基于Qt的UDP传输文字聊天小软件实现 (Qt查询本地Ip、Qt本地时间显示、传输中文汉字实现、Qt的textedit自动滚屏实现、给QPushButton设键盘快捷实现)---续上
  15. linux中竖线'|',双竖线‘||’,和的意思
  16. Linux 重定向和追加(、 指令)
  17. 如何看损失函数图loss
  18. 线程学习(13)-偏向锁
  19. 调用百度ocr接口识别表格
  20. 用laravel写一个API

热门文章

  1. HTTPS自动延期证书申请
  2. 51实验10: 独立按键控制一个数码管显示0-9,按一次只加1.
  3. python 中文分析句子成分_英语长难句看不懂,句子成分不会分析?一文轻松搞定...
  4. MAC-快捷键打开终端
  5. 用php做动态时钟,vue实现动态时钟以及日期
  6. 三目表达式 ---if--else的简写
  7. PHP 对接阿里云短信
  8. jquery ajax 回调函数里面再执行ajax函数,jQuery AJAX 和其回调函数
  9. 如何在计算机上增加一个磁盘分区,电脑怎么添加硬盘分区
  10. 看完这篇文章,还不知道怎么学单片机,来打我!