为了账号安全,请及时绑定邮箱和手机立即绑定

为熊猫中数据帧列的组合创建字典

为熊猫中数据帧列的组合创建字典

GCT1015 2022-09-20 17:42:42
如果我的数据帧中有 100 列,并且我想创建一对列的字典,则键将始终是固定列。怎样才能做到呢?假设我们有一个这样的数据帧:k    v1    v2    ...    v99============================i    1     2     ...    9ii   11    22    ...    99iii  111   222   ...    999...我想要字典,...例如:dict_v1dict_v2dict_v99dict_v2{'i': 2, 'ii': 22, 'iii': 222, ...}
查看完整描述

1 回答

?
www说

TA贡献1775条经验 获得超8个赞

我建议创建字典的字典,如:


d = df.set_index('k').to_dict()

print (d)

{'v1': {'i': 1, 'ii': 11, 'iii': 111}, 

 'v2': {'i': 2, 'ii': 22, 'iii': 222}, 

 'v99': {'i': 9, 'ii': 99, 'iii': 999}}

然后每个字典都可以按键选择:


print (d['v2'])

{'i': 2, 'ii': 22, 'iii': 222}

另一个想法应该是:


df1 = df.set_index('k')

print (df1)

      v1   v2  v99

k                 

i      1    2    9

ii    11   22   99

iii  111  222  999


print (df1['v2'].to_dict())

{'i': 2, 'ii': 22, 'iii': 222}

您需要的是可能的,但是将名称动态添加到Python命名空间是一个坏主意。


for k, v in df.set_index('k').to_dict().items():

    globals()[f'dict_{k}'] =  v


print (dict_v2)

{'i': 2, 'ii': 22, 'iii': 222}


查看完整回答
反对 回复 2022-09-20
  • 1 回答
  • 0 关注
  • 55 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信