dataframe到基于两列的dataframe列表

2024-10-01 05:06:56 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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_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填充


Tags: columns数据keydfoutput字典npcolumn
1条回答
网友
1楼 · 发布于 2024-10-01 05:06:56

^{}^{}一起使用:

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

然后在dict comprehension中,通过MultiIndex的第一级通过^{}选择:

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

相关问题 更多 >