删除熊猫df行

时间:2019-07-24 19:01:47

标签: python python-3.x string pandas

鉴于以下两个熊猫数据框df1df2,我试图从df1["a"](字符串)中删除所有与以下行的所有条目都不匹配的行: df2["z"]

df1 = pd.DataFrame({'a' : ['use social tag', 'dubmod intern workshop data', 
                           'deep collabor filter', 'pathrank a novel node rank'],
                    'b' : ["test", "test2" ,"test3", "test4"]})

df1

    a                            b
0   use social tag               test
1   dubmod intern workshop data  test2
2   deep collabor filter         test3
3   pathrank a novel node rank   test4



df2 = pd.DataFrame({'z' : ['experiment', 'dubmod intern workshop data', 
                           'deep collabor filter', 'experiment3']})

df2

    z
0   experiment
1   dubmod intern workshop data
2   deep collabor filter
3   experiment3

结果应如下所示:

    a                            b
0   dubmod intern workshop data  test2
1   deep collabor filter         test3

2 个答案:

答案 0 :(得分:1)

如果您只是在寻找完全匹配的内容,那真的很简单:

df1[df1['a'].isin(df2['z'])].reset_index(drop=True)

您要为df1中的行过滤df2,而不是删除。

答案 1 :(得分:1)

为了完全满足您的要求,我的意思是还要“重新生成”索引,运行:

df1[df1.a.isin(df2.z)].reset_index(drop=True)