如何在两个不同的熊猫数据框中基于两列查找相同行的索引?

时间:2019-01-22 06:40:26

标签: python pandas dataframe

我有以下两个熊猫数据框:

df1 = pd.DataFrame([[21,80,180],[23,95,191],[36,83,176]], columns = ["age", "weight", "height"])
df2 = pd.DataFrame([[22,88,184],[39,84,196],[23,95,190]], columns = ["age", "weight", "height"])

df1:
   age  weight  height
0   21      80     180
1   23      95     191
2   36      83     176

df2:
   age  weight  height
0   22      88     184
1   39      84     196
2   23      95     190

我想比较两个数据帧并获得两个数据帧的索引,其中一个数据帧中的ageweight等于第二个数据帧中的ageweight数据框。在这种情况下,结果将是:

matching_indices = [1,2]    #[df1 index, df2 index]

我知道如何使用iterrows()来实现这一点,但是我更喜欢耗时较少的东西,因为我拥有的数据集相对较大。你有什么想法吗?

1 个答案:

答案 0 :(得分:2)

使用merge和默认内部联接,使用reset_index将索引转换为列,以防止丢失此信息:

df = df1.reset_index().merge(df2.reset_index(), on=['age','weight'], suffixes=('_df1','_df2'))
print (df)
   index_df1  age  weight  height_df1  index_df2  height_df2
0          1   23      95         191          2         190

print (df[['index_df1','index_df2']])
   index_df1  index_df2
0          1          2
相关问题