создание мультииндекса из фрейма данных

#python #pandas

#python #pandas

Вопрос:

     Geography      Age group     2016
0  Toronto          All          1525
1  Toronto           1~7          5
2  Toronto           7~20          7
3  Toronto           20~40        500
4  Vancouver       All           3000
5  Vancouver       1~7            10
6  Vancouver       7~20          565
7  Vancouver       20~40         564
.
.
.
  

ПРИМЕЧАНИЕ: Это всего лишь пример. мой фрейм данных содержит разные числа

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

Также возможно ли groupby без выполнения каких-либо функций в конце?

Вывод должен быть:

    Geography   Age group   2016
0  Toronto       All       1525
1                1~7         5
2                7~20        7
3                20~40      500
4  Vancouver     All       3000
5                1~7         10
6                7~20       565
7                20~40      564
.
.
  

Ответ №1:

Для того, чтобы создать MultiIndex как указано, вы можете просто использовать DataFrame.set_index() :

 df.set_index(['Geography','Agegroup' ])

                    2016
Geography Age group      
Toronto   All       1525
          1~7          5
          7~20         7
          20~40      500
Vancouver All       3000
          1~7         10
          7~20       565
          20~40      564
  

Комментарии:

1. Идеально! Спасибо.

2. Но возможно ли это сделать с помощью groupby?

3. Если вы хотите создать фрейм данных с несколькими индексами, это правильный способ. Groupbys предназначены для применения некоторой функции агрегирования по группам