当前位置:脚本大全 > > 正文

pandas 比较两个表数据是否相同(浅谈pandas筛选出表中满足另一个表所有条件的数据方法)

时间:2022-03-30 09:59:09类别:脚本大全

pandas 比较两个表数据是否相同

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

今天记录一下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.

  • ?
  • 1
  • 2
  • 3
  • 4
  • 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筛选出表中满足另一个表所有条件的数据方法)

    然后利用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来控制。

    最后的代码如下:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 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筛选出表中满足另一个表所有条件的数据方法)

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

    原文链接:https://blog.csdn.net/qq_24499417/article/details/84129598

    标签:
    上一篇下一篇

    猜您喜欢

    热门推荐