2017-07-25 1 views
1

J'ai deux dataframes avec des KPI par date. Je veux les combiner et utiliser multi-index afin que chaque KPI puisse être facilement comparé à l'autre pour les deux df.Rejoindre/Fusionner deux fichiers de données Pandas et utiliser les colonnes comme multi-index

Comme ceci:

concat dataframes and swap multiindex

J'ai essayé d'extraire chaque KPI dans une série, renommer la série en conséquence (DF1, DF2), puis de les concaténer en utilisant l'argument des clés de pd.concat mais ne semble pas fonctionner.

Toute aide serait grandement appréciée.

+1

Bonjour et bienvenue à Stack Overflow. Je suggère d'abord de lire https://stackoverflow.com/help/how-to-ask – ZombieChowder

Répondre

3

Utilisons pd.concat avec le paramètre keys, swaplevel et sort_index:

df1 = pd.DataFrame({'A':['A0','A1','A2'],'B':['B0','B1','B2'],'C':['C0','C1','C2']},index=pd.date_range('2017-01-01',periods=3, freq='M')) 
df2 = pd.DataFrame({'A':['A3','A4','A5'],'B':['B3','B4','B5'],'C':['C3','C4','C5']},index=pd.date_range('2017-01-01',periods=3, freq='M')) 

pd.concat([df1,df2],axis=1,keys=['df1','df2']).swaplevel(0,1,axis=1).sort_index(axis=1) 

Sortie:

   A  B  C  
      df1 df2 df1 df2 df1 df2 
2017-01-31 A0 A3 B0 B3 C0 C3 
2017-02-28 A1 A4 B1 B4 C1 C4 
2017-03-31 A2 A5 B2 B5 C2 C5 
+0

Appréciez le fait que vous avez en quelque sorte converti ces images en code. +1 –

+0

@ cᴏʟᴅsᴘᴇᴇᴅ en quelque sorte? Je l'ai tapé manuellement. :) –