2017-10-08 79 views
1

我與熊貓正與數據幀像bleow大熊貓數據框中列和特定的行變換

area date m1 m2 
IDC1 02/01/2017 400 80 
IDC1 03/01/2017 400 70 
IDC2 02/01/2017 410 204 
IDC2 03/01/2017 400 214 

我wnat將它轉化到下面,我已經看到了pd.melt,但仍然沒有工作。

area date 02/01/2017 03/01/2017 
IDC1 m1  400   400 
IDC1 m2  80   70 
IDC2 m1  410   400 
IDC2 m2  204   214 

回答

1

使用set_indexstackunstack

df = (df.set_index(['area', 'date']) 
     .stack() 
     .unstack(1, fill_value=0) 
     .rename_axis(('area','date')) 
     .rename_axis(None, 1) 
     .reset_index()) 
print (df) 
    area date 02/01/2017 03/01/2017 
0 IDC1 m1   400   400 
1 IDC1 m2   80   70 
2 IDC2 m1   410   400 
3 IDC2 m2   204   214