我想创建一个带有密钥的json dict。
df = pd.DataFrame({'a':list('ABCAB'),
                   'b':[4,5,4,5,10],
                   'c':[7,8,9,5,10]})
df.set_index('a').to_json(orient='records')
print(d)这将创建一个json字典,如下所示:[{"b":4,"c":7},{"b":5,"c":8},{"b":4,"c":9},{"b":5,"c":5},{"b":10,"c":10}]
然而,我正在努力获得我想要的方式,我最好有一个json字典,它的关键字是这样的:["A":[{"b":4,"c":7}, {"b":5,"c":5}],"B": [{"b":5,"c":8},{"b":10,"c":10}], "C": [{"b":4,"c":9}]]
发布于 2019-02-28 20:49:10
使用带有apply的groupby和带有指定列名的lambda函数,最后调用Series.to_json
d = df.groupby('a')['b','c'].apply(lambda x: x.to_dict('r')).to_json()
print(d)
{"A":[{"b":4,"c":7},{"b":5,"c":5}],
 "B":[{"b":5,"c":8},{"b":10,"c":10}],
 "C":[{"b":4,"c":9}]}更动态的解决方案是通过Index.difference获取列名
cols = df.columns.difference(['a'])
d = df.groupby('a')[cols].apply(lambda x: x.to_dict('r')).to_json()https://stackoverflow.com/questions/54926110
复制相似问题