如何将pandas数据帧和numpy数组转换成字典?

2024-04-20 10:28:29 发布

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

我有下面的熊猫数据帧,看起来像

       code      comp                       name  
0   A292340    디비자산운용         마이티 200커버드콜ATM레버리지   
1   A291630  키움투자자산운용         KOSEF 코스닥150선물레버리지   
2   A278240   케이비자산운용        KBSTAR 코스닥150선물레버리지   
3   A267770  미래에셋자산운용            TIGER 200선물레버리지   
4   A267490   케이비자산운용  KBSTAR 미국장기국채선물레버리지(합성 H)   

我喜欢用这个做字典

^{pr2}$

很抱歉你的资料是国外的,但请让我问一下。 我试过的是

values = [comp, name]
names = ['comp', 'name']
tmp = {names:values for names, values in zip(names, values)}
tpm = {code:values for values in zip(*tmp)}
aaaa = {date:c for c in zip(*tpm)}
print(aaaa)

aaaa是我想要的。。日期只是一个简单的日期列表,从今天开始。但是当我运行这个时,我得到了错误

TypeError: unhashable type: 'numpy.ndarray'

提前感谢您的回答。在


Tags: 数据nameinfornamescodeziptmp
1条回答
网友
1楼 · 发布于 2024-04-20 10:28:29

这是你想要的吗?首先,将"code"列设置为索引。然后将^{}"orient="index"一起使用。在

df.set_index("code").to_dict("index")

{'A267490': {'comp': '케이비자산운용', 'name': 'KBSTAR 미국장기국채선물레버리지(합성 H)'},
 'A267770': {'comp': '미래에셋자산운용', 'name': 'TIGER 200선물레버리지'},
 'A278240': {'comp': '케이비자산운용', 'name': 'KBSTAR 코스닥150선물레버리지'},
 'A291630': {'comp': '키움투자자산운용', 'name': 'KOSEF 코스닥150선물레버리지'},
 'A292340': {'comp': '디비자산운용', 'name': '마이티 200커버드콜ATM레버리지'}}

使用参数"index"将给出布局:

^{pr2}$

在这里,由于我们将code设置为索引,因此

code -> {"comp" -> comp's value, "name" -> name's value}
'A267490': {'comp': '케이비자산운용', 'name': 'KBSTAR 미국장기국채선물레버리지(합성 H)'}

相关问题 更多 >