Панды pd.DataFrame.groupby('publisher_name').groups
возвращает диктант с издателями в качестве ключей и объектами индекса строки pd.Index()
в качестве значений. Если вы установите индекс DataFrame на 'book_name'
, вы получите нужные списки книг в качестве значений.
Используя Aechlys 'пример:
df = pd.DataFrame({'publisher_name': ['john', 'mark', 'john', 'fred','john'],
'book_name' : ['aa', 'bb', 'cc', 'dd','ee']})
book_name publisher_name
0 aa john
1 bb mark
2 cc john
3 dd fred
4 ee john
вы получите диктат по:
pub = df.set_index('book_name').groupby('publisher_name').groups
pub['john']
Index(['aa', 'cc', 'ee'], dtype='object', name='book_name')
Чтобы получить книги в виде списка, просто используйте Index (). Tolist () при доступе к значениям dict:
pub['john'].tolist()
['aa', 'cc', 'ee']
или сделать все в одной строке:
pub = {k : v.tolist() for k,v in
df.set_index('book_name').groupby('publisher_name').groups.items() }
дает желаемое значение только списками в качестве значений
pub
{'fred': ['dd'], 'john': ['aa', 'cc', 'ee'], 'mark': ['bb']}