Python 根据另一个数据帧的条件定位一个数据帧中的行

Python 根据另一个数据帧的条件定位一个数据帧中的行,python,dataframe,Python,Dataframe,我已经从一个主数据帧创建了两个数据帧,例如df1和df2 每个数据帧的列数相同,但df2中的行数不会少于df1中的行数。数据帧将包含waferlot、x、y、w列 如何从df1中的df2中搜索waferlot、x、y、w 虽然可以有多种方法来实现这一点,其中一种方法在评论中已经提到,但我通常使用: 给定两个数据帧: import pandas as pd df1 = pd.DataFrame() df1['C1'] = ['a', 'b', 'c', 'd', 'e', 'f'] df1['C

我已经从一个主数据帧创建了两个数据帧,例如df1和df2

每个数据帧的列数相同,但df2中的行数不会少于df1中的行数。数据帧将包含waferlot、x、y、w列


如何从df1中的df2中搜索waferlot、x、y、w

虽然可以有多种方法来实现这一点,其中一种方法在评论中已经提到,但我通常使用:

给定两个数据帧:

import pandas as pd

df1 = pd.DataFrame()
df1['C1'] = ['a', 'b', 'c', 'd', 'e', 'f']
df1['C2'] = ['b', 'c', 'x', 'w', 'h', 'j']
df2 = pd.DataFrame()
df2 ['C1'] = ['x', 'a', 'c', 'f']
df2 ['C2'] = ['w', 'h', 'd', 'j']
数据帧看起来像:

In [144]: df1
Out[144]:
  C1 C2
0  a  b
1  b  c
2  c  x
3  d  w
4  e  h
5  f  j

In [145]: df2
Out[145]:
  C1 C2
0  x  w
1  a  h
2  c  d
3  f  j
现在,我可以使用isin在数据帧的所有列中搜索我想要的任何内容

x = (df1[df1.C1.isin(df2.C1) & df1.C2.isin(df2.C2)])
输出:

  C1 C2
5  f  j
  C1 C2
0  a  b
2  c  x
5  f  j
如果只想搜索一列,则可以删除
&
之前或之后的条件之一:

x = (df1[df1.C1.isin(df2.C1)])
输出:

  C1 C2
5  f  j
  C1 C2
0  a  b
2  c  x
5  f  j

你正在寻找pd.merge(df1,df2,on=[waferlot,x,y,w])你能给出一个输入数据和预期输出的例子吗?Ashish Acharya,需要尝试一下。在我看来,这是一个很好的解决方案。Ashish我尝试了这个解决方案,但给出了KeyError:“K123456-01”。谢谢!trollster我将尝试并反馈我尝试了你的方法,但似乎我从更大的数据帧中获得了额外的行。很抱歉,出于某些安全原因,我无法共享数据。您可以使用虚假数据创建一些较小的数据集,并描述您的问题。你多排是什么意思?