Ваша последняя попытка близка. Вместо группировки по всем столбцам, просто используйте список тех, которые вы хотите рассмотреть:
Различные макеты groupby
df.index.to_series().groupby([df['A'],df['B']]).apply(list)
Out[449]:
A B
1 3 [0, 1, 2]
2 4 [3, 4]
5 [5]
dtype: object
У вас может быть .groupby
, чтобы вернуть dict
с ключами, которые являются метками группы (кортежи для нескольких столбцов), а значениями являются индексом
df.groupby(['A', 'B']).groups
#{(1, 3): Int64Index([0, 1, 2], dtype='int64'),
# (2, 4): Int64Index([3, 4], dtype='int64'),
# (2, 5): Int64Index([5], dtype='int64')}