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

如何将数据框转换为嵌套字典?

如何将数据框转换为嵌套字典?

炎炎设计 2022-01-11 20:26:43
我有一个看起来像这样的数据框:    ORG                 SURVEY_DATE     NOSAsset Management    2018-04-23          1.0Asset Management    2018-05-08          1.0Asset Management    2018-10-29          1.0CIO                 2018-11-08          1.0CIO                 2018-11-13          2.0我想把它转换成一个像这样的字典。{  "Asset Management": {    "2019-03-30": 50,    "2019-03-31": 40,    "2019-04-01": 20,    "2019-04-02": 30  },  "CIO": {    "2019-03-30": 10,    "2019-03-31": 20,  }}
查看完整描述

2 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

好的,我更新了我的答案。哇!现在它起作用了。


In [9]: df

Out[9]:

                ORG SURVEY_DATE  NOS

0  Asset Management  2018-04-23  1.0

1  Asset Management  2018-05-08  1.0

2  Asset Management  2018-10-29  1.0

3               CIO  2018-11-08  1.0

4               CIO  2018-11-13  2.0


In [10]: df.groupby('ORG').apply(lambda x: dict(zip(x['SURVEY_DATE'],x['NOS']))).to_dict()

Out[10]:

{'Asset Management': {'2018-04-23': '1.0',

  '2018-05-08': '1.0',

  '2018-10-29': '1.0'},

 'CIO': {'2018-11-08': '1.0', '2018-11-13': '2.0'}}

说明:如果您有 2 个或更多迭代,则可以使用zip以下方法同时循环它们:


x = [1,2,3]

y = [4,5,6]

for i,j in zip(x, y):

    print(i, j) # (1,4), (2,5), (3,6)

我正在从 tuple 创建字典。也lambda只是任何一个线性函数定义的简写:


foo = lambda x: x+1

# equivalent

def foo(x):

  return x+1


查看完整回答
反对 回复 2022-01-11
?
料青山看我应如是

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

假设您的数据框位于一个名为的变量中df:


>>> df.groupby('ORG').apply(lambda f: {key: value for key, value in zip(f.SURVEY_DATE, f.NOS)} ).to_dict()

{'Asset Management': {'2018-04-23': 1.0, '2018-05-08': 1.0, '2018-10-29': 1.0},

 'CIO': {'2018-11-08': 1.0, '2018-11-13': 2.0}}


查看完整回答
反对 回复 2022-01-11
  • 2 回答
  • 0 关注
  • 174 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号