我有一个数据帧:
v1 v2 v3
c1
a 1.593979 1.679763 1.613202
n 1.327004 2.551197 1.492442
z 1.615528 1.156273 1.817987
我想从数据框架创建一个字典。我知道我能做到
d = {str(i): v for i,v in enumerate(var.values.flatten()))}
并创建一个字典1.593979,1.679763 , ...
和键'0','1','2'等...
但是,我希望我的新词典的键是原始列和索引名称的组合,例如
dict_result={'v1_a':1.593979,'v2_a':1.679763,...,'v3_z':1.817987}
如何使用熊猫实现这一目标?
使用unstack
和flatten indices,最后调用to_dict
:
s = df.unstack()
s.index = s.index.map('_'.join)
#alternative
#s.index = ['{}_{}'.format(x, y) for x, y in s.index ]
d = s.to_dict()
print (d)
{'v2_n': 2.551197, 'v1_a': 1.593979, 'v1_n': 1.327004,
'v2_a': 1.6797630000000001, 'v3_z': 1.8179869999999998,
'v3_n': 1.492442, 'v1_z': 1.615528, 'v2_z': 1.1562729999999999, 'v3_a': 1.613202}