Имея два фрейма данных с многоуровневыми индексами в одном, представленном как столбцы в другом, идея состоит в том, чтобы выбрать те строки из первого, где значения индекса совпадают с соответствующими значениями столбца.
Пример
Имея следующие два фрейма данных df1
и df2
:
df1 = pd.DataFrame({'i1': ['a1', 'a2', 'a3'], 'i2': ['b1', 'b2', 'b3'], 'c': [1, 2, 3]})
df1 = df1.set_index(['i1', 'i2'])
c
i1 i2
a1 b1 1
a2 b2 2
a3 b3 3
df2 = pd.DataFrame({'i1': ['a1', 'a3'], 'i2': ['b1', 'b3']})
i1 i2
0 a1 b1
1 a3 b3
Выберите те строки df1
, значения индекса которых i1
и i2
имеютте же значения, что и у столбцов i1
и i12
в df2
, что приводит к:
c
i1 i2
a1 b1 1
a3 b3 3