python如何将dataframe转化为 想要的json格式
想要将几列数据进行转化成json时
1 数据 想要的json格式: 部分数据:
{
category_id1: {
album_id1: album_mean1,
album_id2: album_mean2,
album_id3: album_mean3,
album_id4: album_mean4
},
category_id2: {
album_id1: album_mean1,
album_id5: album_mean5,
album_id6: album_mean6,
album_id7: album_mean7}
}
{
27: {
309: 0.897,
612: 0.836,
613: 0.81,
774: 0.777,
25: 0.762,
38: 0.732,
50: 0.675,
332: 0.659,
371: 0.483},
7: {
532: 0.864,
374: 0.856,
802: 0.853,
716: 0.843,
411: 0.84,
798: 0.832,
306: 0.796,
12: 0.795}}
方法一:
ghh = hg[[category_id, album_id, album_mean]]
from collections import defaultdict
category_album_dic = defaultdict(dict)
for album_id, album_mean, category_id in ghh.itertuples(index=False):
category_album_dic[album_id][album_mean] = category_id
category_album_dic = dict(category_album_dic)
方法2:
result = dict()
for index, row in ghh.iterrows():
album_id, album_mean, category_id = row
result.setdefault(album_id, {
}).update({
album_mean:category_id})
result
将两列转化为字典:
data_dict = hg.groupby(category_id).album_id.apply(list).to_dict()
{
1: [532, 716, 798, 12, 420, 375, 774, 22, 509, 60, 808, 49, 335],
2: [322,721,722,792,473,471,472,720,95,791,304,664,790,801]
}
另外一种:
alb.groupby(album_id).apply(lambda x: {
col:x[col].to_list()[0] for col in x.columns if col != album_id}).to_dict()
{3: {‘album_name’: ‘天线宝宝 第二季’, ‘category_name’: ‘动画’}, 8: {‘album_name’: ‘小企鹅啵乐乐 第四季 英文版’, ‘category_name’: ‘动画’}, 9: {‘album_name’: ‘小企鹅啵乐乐儿歌 英文版’, ‘category_name’: ‘英语’}, 10: {‘album_name’: ‘小公交车太友 第二季’, ‘category_name’: ‘动画’}, 11: {‘album_name’: ‘小公交车太友 第二季 英文版’, ‘category_name’: ‘动画’}, 12: {‘album_name’: ‘小公交车太友儿歌 英文版’, ‘category_name’: ‘英语’}, 13: {‘album_name’: ‘方块熊之莉娅公主’, ‘category_name’: ‘玩具’}, 14: {‘album_name’: ‘蓝迪唐诗宋词’, ‘category_name’: ‘早教’}, 15: {‘album_name’: ‘海底小纵队 英文版’, ‘category_name’: ‘动画’}, 16: {‘album_name’: ‘海底小纵队’, ‘category_name’: ‘动画’}, 18: {‘album_name’: ‘乔治律动儿歌’, ‘category_name’: ‘儿歌’}, 19: {‘album_name’: ‘亲宝交通工具儿歌’, ‘category_name’: ‘儿歌’}, 20: {‘album_name’: ‘亲宝儿歌’, ‘category_name’: ‘儿歌’}, 21: {‘album_name’: ‘亲宝恐龙世界’, ‘category_name’: ‘儿歌’}, 22: {‘album_name’: ‘亲宝英语说唱’, ‘category_name’: ‘英语’}, 23: {‘album_name’: ‘起司公主自我保护’, ‘category_name’: ‘早教’}
