Сгруппируйте значения в одном столбце, которые имеют одинаковое значение в другом столбце (pandas: groupby.apply / multi-index) - PullRequest
0 голосов
/ 22 марта 2019

Я работаю со следующим фреймом данных Это только часть df

Я хочу создать мультииндексный фрейм данных, где индексом верхнего уровня является title_no, а подиндексом являются все значения release_no, которые имеют один и тот же title_no.

Я пытался использовать метод groupby.apply, но он группирует release_no's с тем же title_no в списки и удаляет остальные столбцы:

df = pd.DataFrame(df.groupby('title_no')['release_no'].unique()).reset_index()

Это результат

В идеале я хотел бы, чтобы мой массив данных выглядел примерно так:

title_no           release_no           name                     country_id

199034                                         

                   732644               Jurassic Park III        ES
                   891376               Jurassic Park III        CA
                   732658               Jurassic Park III        TH
199052

                   1119213              Myth of Fingerprints     IT
                   925041               Myth of Fingerprints     ES
                   448432               Myth of Fingerprints     US
                   564033               Myth of Fingerprints     FR

...

Есть ли способ сделать это в пандах, где я мог бы перечислить строки под тем же title_no и иметь возможность индексировать строки на одном уровне с помощью title_no, а затем с release_no на более низком уровне ?

1 Ответ

0 голосов
/ 22 марта 2019

Вам не нужно groupby для этого;сортировки будет достаточно:

df.sort_values(['title_no', 'release_no']).set_index(['title_no', 'release_no'])
...