比较两个DataFrame并找出具有相同值的行的索引

时间:2019-05-23 10:15:24

标签: python dataframe indexing compare

我有以下两个数据框。

df1 = [[0,1,1,1,1,1],[1,0,1,1,1,1],[1,1,0,1,1,1],[1,1,1,1,0,1],[1,0,1,1,0,1],[1,1,0,1,1,1],[1,1,1,0,1,1],[0,0,0,0,0,0],[0,0,0,0,0,0],[1,0,1,1,1,1]]
df2 = [[0,1,1,1,1,1],[1,0,1,1,1,1],[1,1,0,1,1,1],[1,1,1,1,0,1],[1,1,1,0,1,1]]
df_1 = pd.DataFrame(df1)
df_2 = pd.DataFrame(df2)
df_1 = df_1.drop([0,5])
print(df_1)
print(df_2)

您可以看到,我从df_1删除了两行,而没有重置索引。因此df_1从第一行的索引1开始而不是0。

我正在寻找一种方法来查找与df_2具有相同行的df_1行的索引,因此我的预期输出应该是

[1, 2, 3, 6, 9]

我尝试了下面的代码,该代码是@WeNYoBen在另一篇文章中建议的。

index = df_1.merge(df_2,indicator=True,how='left').loc[lambda x : x['_merge']=='both'].index

但是代码给了我以下输出

index = [0, 1, 2, 4, 7]

如您所见,以上输出为我提供了放置操作后df_1的重置索引。

我之所以要使用[1、2、3、6、9]而不是[0、1、2、4、7]是因为我需要根据索引I进一步删除df_1的行并同时从每一行中检索额外的信息(在上面的示例中未显示)

请分散我。非常感谢!

汤米

0 个答案:

没有答案