鉴于以下两个熊猫数据框df1
和df2
,我试图从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
答案 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)