Python 从另一个数据帧中删除数据帧而不删除重复项

Python 从另一个数据帧中删除数据帧而不删除重复项,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个大小为[21,4]的数据帧df1和一个大小为[10200,4]的数据帧df2。 我希望从df2中删除df1的值,使其大小为[10179,4] 我见过很多帖子使用drop duplicates函数,但是我不想在df2数据帧中删除任何重复项,我只想删除df1值。 我试过了 result=df1[~df1[['decel','accel','corner','vert']].apply(lambda x: np.in1d(x,df2).all(),axis=1)]\.reset_index(d

我有一个大小为[21,4]的数据帧df1和一个大小为[10200,4]的数据帧df2。 我希望从df2中删除df1的值,使其大小为[10179,4]

我见过很多帖子使用drop duplicates函数,但是我不想在df2数据帧中删除任何重复项,我只想删除df1值。 我试过了

result=df1[~df1[['decel','accel','corner','vert']].apply(lambda x: np.in1d(x,df2).all(),axis=1)]\.reset_index(drop=True)
但是没有成功! 非常感谢你的帮助

更新: 使用代码:

Xfinal = pd.merge(X, dropthese, on=['decel','accel','corner','vert'], how='outer', indicator=True).query("_merge != 'both'").drop('_merge', axis=1)

允许我从df2中删除df1,但是对df2重新排序,将相似的值分组。有没有办法保持订单不变?谢谢

如果解决方案不起作用,您可以添加吗?在删除
df1
值后,您可以对
df2
的索引进行排序以维持顺序吗?或者创建某种类型的键,指示在执行合并之前要保留的顺序?