2016-04-23 2 views
3

Показать мой кодpandas, как получить доступ к мультииндексу данных?

>>> df = pd.DataFrame({'key1': ['a', 'a', 'b', 'b', 'a'], \ 
        'key2': ['one', 'two', 'one', 'two', 'one'], \ 
        'data1': np.random.randn(5), \ 
        'data2': np.random.randn(5)}) 

>>> new_df = df.groupby(['key1', 'key2']).mean().unstack() 
>>> print new_df 
     data1    data2 
key2  one  two  one  two 
key1 
a -0.070742 -0.598649 -0.349283 -1.272043 
b -0.109347 -0.097627 -0.641455 1.135560 
>>> print new_df.columns 
MultiIndex(levels=[[u'data1', u'data2'], [u'one', u'two']], 
     labels=[[0, 0, 1, 1], [0, 1, 0, 1]], 
     names=[None, u'key2']) 

Как вы можете видеть, мультииндексных dataframe отличается от обычных dataframes, так как для доступа к данным в мультииндексных dataframe.

ответ

3

Доступ к данным в мультииндексе DataFrame аналогичен способу работы с общим фреймворком данных. Например, если вы хотите читать данные в (а, data1.two), вы можете просто сделать: new_df['data1']['two']['a'] или new_df.loc['a', ('data1', 'two')]

Пожалуйста, ознакомьтесь с official docs для более подробной информации.

Смежные вопросы