我有以下两个数据框。
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的行并同时从每一行中检索额外的信息(在上面的示例中未显示)
请分散我。非常感谢!
汤米