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