2017-06-12 81 views
2

我有一些压缩/汇总数据,如如何解压/解聚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 

进入这个

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 

我知道如何聚合大熊猫数据,但我找不到任何例子在线,做和解聚集就我所知,这样的数据是这样的。

+0

您可能要检查'pd.melt' –

+0

谢谢,我会研究它。 – KubiK888

回答

1

让我们尝试:

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() 

输出:

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