Pandas: noms de colonnes multiniveaux

pandas a le support du multi-niveau des noms de colonne:

>>>  x = pd.DataFrame({'instance':['first','first','first'],'foo':['a','b','c'],'bar':rand(3)})
>>> x = x.set_index(['instance','foo']).transpose()
>>> x.columns
MultiIndex
[(u'first', u'a'), (u'first', u'b'), (u'first', u'c')]
>>> x
instance     first                    
foo              a         b         c
bar       0.102885  0.937838  0.907467

Cette fonctionnalité est très utile puisqu'il permet de multiples versions d'un même dataframe être ajoutés à l' 'horizontale' avec le 1er niveau de la colonne des noms (dans mon exemple instance) en distinguant le cas.

Imaginer j'ai déjà un dataframe comme ceci:

                 a         b         c
bar       0.102885  0.937838  0.907467

Est là une belle façon d'ajouter un autre niveau pour les noms de colonne, similaire à ce pour les index de ligne:

x['instance'] = 'first'
x.set_level('instance',append=True)

source d'informationauteur LondonRob