Python 将PandasDataFrame转换为json
我需要将Pandas数据帧转换为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
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')
)