我有一个数据框:
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}
如何使用pandas实现这一目标?
答案 0 :(得分:1)
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}