熊猫根据另一个数据帧中2列的值过滤行

时间:2020-09-04 12:00:22

标签: python pandas

假设我们有2个dfs。

df1:

        Product   Name1    Name2
    0   ABC       aaa      bbb
    1   ASD       sss      ddd
    2   ZCX       xxx      NaN
    3   QWE       qqq      NaN
    4   IOP       iii      ooo

df2:

        Title     Col1     Col2
    0   aaaLKJ    ...      ...
    1   zzzMNB    ...      ...
    2   dddKJH    ...      ...
    3   ooo123    ...      ...
    4   aaa098    ...      ...
    5   ttt676    ...      ...

输出df应该包含所有df2行,其中“标题”以df1的“名称1”或“名称2”开头。

        Title     Col1     Col2
    0   aaaLKJ    ...      ...
    2   dddKJH    ...      ...
    3   ooo123    ...      ...
    4   aaa098    ...      ...

请让我知道如何实现。我用df.loc,isin,str.contains尝试了几种方法,但是没有运气...

1 个答案:

答案 0 :(得分:2)

您可以建立一个列表,其中包含df1中两列的所有名称,并在Series.str.startswithTitle上的df2上使用{{1} }的字符串,以查找以tuple中的任何术语开头的字符串:

names