2017-06-12 1 views
2

J'ai des données agrégées/compressées telles queComment décompresser/désagréger des données hiérarchiques dans python/pandas?

Incident_ID Case_ID_1 Name_1 Case_ID_2 Name_2 Common 
1 1.1 Peter 1.2 Sally Apple 
2 2.1 Sam 2.2 Juliet Banana 

Dans cette

Incident_ID Case_ID Name Common 
1 1.1 Peter Apple 
1 1.2 Sally Apple 
2 1.1 Sam Banana 
2 2.1 Juliet Banana 

Je sais comment agréger des données en pandas géants, mais je ne peux pas trouver en ligne par exemple qui fait de-agrégation de données comme ça pour autant que je sache.

+0

Vous pouvez vérifier 'pd.melt' –

+0

Merci, je vais explorer. – KubiK888

Répondre

1

Essayons:

df1 = df.set_index(['Incident_ID','Common']) 

df_case = df1[['Case_ID_1','Case_ID_2']].stack().reset_index(level=2,drop=True).rename('Case') 

df_name = df1[['Name_1','Name_2']].stack().reset_index(level=2,drop=True).rename('Name') 

df_out = pd.concat([df_case,df_name], axis=1).reset_index() 

Sortie:

Incident_ID Common Case_ID Name 
0   1 Apple  1.1 Peter 
1   1 Apple  1.2 Sally 
2   2 Banana  2.1  Sam 
3   2 Banana  2.2 Juliet