Python dataframe到基于两列的dataframe列表

Python dataframe到基于两列的dataframe列表,python,pandas,dataframe,pivot-table,Python,Pandas,Dataframe,Pivot Table,我有一个如下所示的数据框: df= columnDate column_key v1 v2 ... vN 0 01/01/2000 'a' 1 3 1 01/01/2000 'b' 2 4 2 02/01/2000 'a' 3 5 3 02/01/2000 'b' 4

我有一个如下所示的数据框:

df=
         columnDate    column_key      v1   v2 ... vN
0         01/01/2000       'a'         1    3
1         01/01/2000       'b'         2    4
2         02/01/2000       'a'         3    5
3         02/01/2000       'b'         4    6
...
我想将此数据帧拆分为一个数据帧字典,一个用于原始
v1..vN
列,并将
columnDate
中的可能值作为新列,将
columns\u key
的值作为索引

对于本例,所需输出为:

output['v1']=
      01/01/2000    02/01/2000    
'a'    1               3      
'b'    2               4       

output['v2']=
      01/01/2000    02/01/2000    
'a'    3               5      
'b'    4               6   
注意:
df
中缺少的值应该用np.nan填充使用:

然后在
dict comprehension
中,通过
多索引的第一级选择:


df1 = df.set_index(['column_key','columnDate']).unstack()
print (df1)
                   v1                    v2           
columnDate 01/01/2000 02/01/2000 01/01/2000 02/01/2000
column_key                                            
'a'                 1          3          3          5
'b'                 2          4          4          6
output = {x:df1.xs(x, axis=1) for x in df1.columns.levels[0]}
print (output)
{'v1': columnDate  01/01/2000  02/01/2000
column_key                        
'a'                  1           3
'b'                  2           4, 'v2': columnDate  01/01/2000  02/01/2000
column_key                        
'a'                  3           5
'b'                  4           6}
print (output['v1'])
columnDate  01/01/2000  02/01/2000
column_key                        
'a'                  1           3
'b'                  2           4

print (output['v2'])
columnDate  01/01/2000  02/01/2000
column_key                        
'a'                  3           5
'b'                  4           6