Какими метками являются карты в Pandas MultiIndex? - PullRequest
0 голосов
/ 28 августа 2018

У меня есть этот набор данных,

new_df = pd.DataFrame( { 
    "Country" : ["C1", "C2", "C1", "C3", "C1", "C3", "C1"],
    "City" : ["ISB", "KHR", "LAH", "DUB", "RWP", "RWP", "RWP"],
    "Sales" : [10, 25, 40, 20, 45 , 43,10]  } )

на котором я это сделал;

grouped_new_df = new_df.groupby(['Country', 'City'])
new_new_df = grouped_new_df.agg({'Sales': {'Mean': np.mean, 'Sum':np.sum}})

enter image description here

new_new_df.index
MultiIndex(levels=[['C1', 'C2', 'C3'], ['DUB', 'ISB', 'KHR', 'LAH', 'RWP']],
           labels=[[0, 0, 0, 1, 2, 2], [1, 3, 4, 2, 0, 4]],
           names=['Country', 'City'])

Здесь я не понимаю, как эти метки labels=[[0, 0, 0, 1, 2, 2], [1, 3, 4, 2, 0, 4]], отображаются?

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

В вашем примере, если вы хотите значение index level=1, вы можете.

new_new_df.index.levels[1][new_new_df.index.labels[1]]
Out[230]: Index(['ISB', 'LAH', 'RWP', 'KHR', 'DUB', 'RWP'], dtype='object', name='City')
0 голосов
/ 28 августа 2018

labels - соответствующие индексы вашего levels. Например, первый уровень вашего мультииндекса в Country. Если вы посмотрите на levels для этого, это список, включающий C1, C2 и C3. Таким образом, ваши данные C1,C1,C1,C2,C3,C3, , т.е. индексы [0,0,0,1,2,2] списка [C1,C2,C3].

Та же логика применима для City уровней

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...