Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将PandasDataFrame转换为json_Python_Pandas - Fatal编程技术网

Python 将PandasDataFrame转换为json

Python 将PandasDataFrame转换为json,python,pandas,Python,Pandas,我需要将Pandas数据帧转换为json 下面是我的数据样本 import pandas as pd df = pd.DataFrame(data = [ {'project_no' :1, 'country' :'USA','category' : 'Beverages','product': 'Milk','count' : 2}, {'project_no' :1,'country' :'USA','category' :'Beverages','produ

我需要将Pandas数据帧转换为json

下面是我的数据样本

import pandas as pd
df = pd.DataFrame(data = [
        {'project_no' :1, 'country' :'USA','category' : 'Beverages','product': 'Milk','count' : 2},
        {'project_no' :1,'country' :'USA','category' :'Beverages','product':'Juice','count' :5},
        {'project_no' :1,'country' :'USA','category' :'Snacks','product':'Potato Chips' , 'count' :2},
        {'project_no' :1,'country' :'USA','category' :'Oils', 'product':'Canola', 'count' :5},
        {'project_no' :1,'country' :'USA','category' :'Oils', 'product':'Olive', 'count' :8},
        {'project_no' :1,'country' :'CAN','category' :'Beverages','product':'Milk','count' :7},
        {'project_no' :1,'country' :'CAN','category' :'Beverages','product':'Juice','count' :8},
        {'project_no' :1,'country' :'CAN','category' :'Snacks','product':'Potato Chips' , 'count' :8},
        {'project_no' :1,'country' :'CAN','category' :'Oils', 'product':'Canola', 'count' :3},
        {'project_no' :1,'country' :'CAN','category' :'Oils', 'product':'Olive','count' :4}
    ] )
如何将上面的数据帧转换为下面的json

这就是我目前所拥有的

(
    df
    .groupby
    (
        [
            'country','category'
        ]
    )
    ['product','count']
    .apply(lambda x: x[['product','count']].to_dict('r'))
    .reset_index()
    .to_json(orient='records')     
)
这是我尝试的结果

[{ “国家”:“可以”, “类别”:“饮料”, "0": [{ “产品”:“牛奶”, “计数”:7 }, { “产品”:“果汁”, “计数”:8 } ] }, { “国家”:“可以”, “类别”:“油”, "0": [{ “产品”:“菜籽油”, “计数”:3 }, { “产品”:“橄榄”, “计数”:4 } ] }, { “国家”:“可以”, “类别”:“零食”, "0": [{ “产品”:“薯片”, “计数”:8 } ] }, { “国家”:“美国”, “类别”:“饮料”, "0": [{ “产品”:“牛奶”, “计数”:2 }, { “产品”:“果汁”, “计数”:5 } ] }, { “国家”:“美国”, “类别”:“油”, "0": [{ “产品”:“菜籽油”, “计数”:5 }, { “产品”:“橄榄”, “计数”:8 } ] }, { “国家”:“美国”, “类别”:“零食”, "0": [{ “产品”:“薯片”, “计数”:2 } ] }]

如果我的问题主要是代码,我该怎么办。 事实上,代码并不多。 给我带来一些痛苦。 我没有多少东西要写。 但我还是得继续写下去。
请注意,这张支票真的很傻。

@rayryeng不,它不会给出结果。正在寻找正确的嵌套。好的。你试过什么?请提供一个你在尝试中遇到困难的地方。@rayryeng Monica补充了我到目前为止所做的@rayryeng:不,这不会给出结果。正在寻找正确的嵌套。好的。你试过什么?请提供一个你在尝试中遇到困难的地方。@rayryeng补充到目前为止我所做的。
(
    df
    .groupby
    (
        [
            'country','category'
        ]
    )
    ['product','count']
    .apply(lambda x: x[['product','count']].to_dict('r'))
    .reset_index()
    .to_json(orient='records')     
)