来自 Pandas DataFrame 的用户定义的 Json 格式

Posted

技术标签:

【中文标题】来自 Pandas DataFrame 的用户定义的 Json 格式【英文标题】:Userdefined Json Format From Pandas DataFrame 【发布时间】:2016-06-12 09:42:30 【问题描述】:

我有一个熊猫数据框。打印熊猫数据框后,结果如下所示

country     branch      no_of_employee     total_salary    count_DOB   count_email
  x            a            30                 2500000        20            25
  x            b            20                 350000         15            20
  y            c            30                 4500000        30            30
  z            d            40                 5500000        40            40
  z            e            10                 1000000        10            10
  z            f            15                 1500000        15            15

我想把它转换成用户定义的用户格式,比如

    
      "x": [
        
          "Branch": "a",
          "no_employee": 30
        ,
        
          "Branch": "b",
          "no_employee": 20
        

      ],
      "y": [
         
          "Branch": "c",
          "no_employee": 30
        ,
        
          "Branch": "d",
          "no_employee": 40
        

      ],
      "z": [
         
          "Branch": "d",
          "no_employee": 40
        ,
        
          "Branch": "e",
          "no_employee": 10
        ,
        
          "Branch": "f",
          "no_employee": 15
        

  ]


如何将此数据帧转换为这种格式

【问题讨论】:

【参考方案1】:

你可以试试groupbyapply to_dict 最后to_json

g = df.groupby('country')[["branch", "no_of_employee"]]
                                                .apply(lambda x: x.to_dict(orient='records'))
print g.to_json()


    "x": [
        "no_of_employee": 30,
        "branch": "a"
    , 
        "no_of_employee": 20,
        "branch": "b"
    ],
    "y": [
        "no_of_employee": 30,
        "branch": "c"
    ],
    "z": [
        "no_of_employee": 40,
        "branch": "d"
    , 
        "no_of_employee": 10,
        "branch": "e"
    , 
        "no_of_employee": 15,
        "branch": "f"
    ]

【讨论】:

@jezrael no no 我得到了确切的答案。我的意思是我想学习如何编写这个函数,为此我可以获得任何教程链接或其他东西 所以我认为您可以查看tutorial1、tutorial2 或question in SO。但通常它会使编写代码更容易一些,并且编写的代码更干净。 很高兴能帮到你!祝你好运!美好的一天。 :)

以上是关于来自 Pandas DataFrame 的用户定义的 Json 格式的主要内容,如果未能解决你的问题,请参考以下文章

Pandas:如何测试 top-n-dataframe 是不是真的来自原始数据框

合并具有来自两个不同列的匹配值的 DataFrame - Pandas [重复]

来自 Python 嵌套字典的 Pandas Dataframe

从 Pandas DataFrame 列标题中获取列表

从 Pandas DataFrame 列标题中获取列表

从 Pandas DataFrame 列标题中获取列表