Donnant une colonne de plusieurs indices/en-têtes,

Je suis en train de travailler avec les pandas dataframes qui sont essentiellement des séries chronologiques comme ceci:

             level
Date              
1976-01-01  409.67
1976-02-01  409.58
1976-03-01  409.66

À ce que je veux, de plusieurs indices/en-têtes pour le niveau de la colonne, comme suit:

           Station1                   #Name of the datasource
           43.1977317,-4.6473648,5    #Lat/Lon of the source
           Precip                     #Type of data
Date              
1976-01-01  409.67
1976-02-01  409.58
1976-03-01  409.66

Donc, essentiellement, je suis à la recherche de quelque chose comme Mydata.columns.level1 = ['Station1'], Mydata.columns.level2 = [Lat,Lon], Mydata.columns.level3 = ['Precip'].

Raison d'être que d'un seul emplacement peut avoir plusieurs ensembles de données, et que je veux être en mesure de choisir toutes les données à partir d'un seul endroit, ou toutes les données d'un certain type de tous les lieux, à partir d'une ultérieure fusionné, grand dataframe.

Je peux mettre en place un exemple dataframe de les pandas de la documentation et de test de ma sélection, mais avec mes données, j'ai besoin d'une autre façon de définir l'index comme dans l'exemple.

Exemple:

Construit une petite dataframe

header = [np.array(['location','location','location','location2','location2','location2']), 
np.array(['S1','S2','S3','S1','S2','S3'])] 
df = pd.DataFrame(np.random.randn(5, 6), index=['a','b','c','d','e'], columns = header )   

df
    location                      location2                    
         S1        S2        S3         S1        S2        S3
a -1.469932 -1.544511 -1.373463  -0.317262  0.024832 -0.641000
b  0.047170 -0.339423  1.351253   0.601172 -1.607339  0.035932
c -0.257479  1.140829  0.188291  -0.242490  1.019315 -1.163429
d  0.832949  0.098170 -0.818513  -0.070383  0.557419 -0.489839
e -0.628549 -0.158419  0.366167  -2.319316 -0.474897 -0.319549

Choisir le type de données ou de l'emplacement:

df.loc(axis=1)[:,'S1']

   location  location2
         S1         S1
a -1.469932  -0.317262
b  0.047170   0.601172
c -0.257479  -0.242490
d  0.832949  -0.070383
e -0.628549  -2.319316

df['location']

         S1        S2        S3
a -1.469932 -1.544511 -1.373463
b  0.047170 -0.339423  1.351253
c -0.257479  1.140829  0.188291
d  0.832949  0.098170 -0.818513
e -0.628549 -0.158419  0.366167

Ou je suis juste à la recherche de mauvais terminologie? Parce que 90% de tous les exemples dans la documentation, et les questions ici seulement de traiter la verticale de "trucs" (dates ou abcde dans mon cas) que les index, et un rapide df.index.values sur mes données de test aussi juste me met à la verticale array(['a', 'b', 'c', 'd', 'e'], dtype=object).

Quel est exactement votre question? À partir de votre exemple dataframe, que voulez-vous obtenir?
Je suis aksing comment donner un dataframe de plusieurs indices. Au lieu d'un seul level, j'ai besoin de chaînes pour Location, LatLon et Type. L'exemple dataframes ne sont là que pour illustrer pourquoi j'ai besoin de plusieurs indices.
Voulez-vous dire quelque chose comme df.loc(axis=1)['location','S1'] (ou df['location','S1'])?
Non, la "cueillette des trucs" partie, j'ai compris. C'est juste pour illustrer le "pourquoi"! Je suis à la recherche d'un moyen de transformer mes données dans un formulaire où je pourrais utiliser ces options. J'ai changé la qeustion un peu. Je suis à la recherche d'un moyen de définir plusieurs colonnes avec df.columns = ['something']
Ah, vous voulez créer le multi-colonnes indexées. Vous pouvez faire quelque chose comme df.columns = pd.MultiIndex.from_tuples([('Station1', 'Precip', ..), ..])

OriginalL'auteur JC_CL | 2015-09-03