如何在python/pandas中decompress/deaggregate分层数据?

How to decompress/deaggregate hierarchical data in python/pandas?

我有一些 compressed/aggregated 数据,例如

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

我知道如何在 pandas 中聚合数据,但据我所知,我在网上找不到任何像这样对数据进行解聚合的示例。

让我们试试:

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