Во-первых, давайте предположим, что у меня есть фрейм данных pandas с одним индексом. Если я использую .loc[]
, чтобы выбрать индекс 'A' дважды, он вернет фрейм данных с индексом 'A', повторенным дважды:
df_1 = pd.DataFrame([1,2,3], index=['A','B','C'], columns=['Col_1'])
df_1
Col_1
A 1
B 2
C 3
df_1.loc[['A','A','B']]
Col_1
A 1
A 1
B 2
Теперь давайте предположим, что у нас есть фрейм данных с мультииндексом. Если я использую .loc[]
для выбора индекса 'A' дважды, он вернет фрейм данных с индексом 'A', включенным только один раз:
ix = pd.MultiIndex.from_product([['A', 'B', 'C'], ['foo', 'bar']], names=['Idx1', 'Idx2'])
data = np.arange(len(ix))
df_2 = pd.DataFrame(data, index=ix, columns=['Col_1'])
df_2
Col_1
Idx1 Idx2
A foo 0
bar 1
B foo 2
bar 3
C foo 4
bar 5
df_2.loc[['A','A','B']]
Col_1
Idx1 Idx2
A foo 0
bar 1
B foo 2
bar 3
Есть ли способ выбрать повторяющиеся значения мультииндексауровень с использованием .loc
?