首页 文章

根据另一个数据框中的条件在一个数据框中定位行

提问于
浏览
0

我从主数据框创建了两个Dataframe,例如df1和df2 .

每个数据帧具有相同的列数,但df2中的行数不会小于df1中的行数 . 数据帧将具有列waferlot,x,y,w .

如何在df1中从df2中搜索waferlot,x,y,w .

1 回答

  • 0

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

    给出两个数据帧:

    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
    

    如果您只想搜索一列,则可以删除 & 之前或之后的其中一个条件:

    x = (df1[df1.C1.isin(df2.C1)])
    

    输出:

    C1 C2
    0  a  b
    2  c  x
    5  f  j
    

相关问题