我有这种Pandas数据框
start end compDepth compReleaseDepth compMeanRate
0 0.0 0.62 58.0999985 1.5 110
1 0.66 1.34 57.1399994 3 94
2 1.42 2.1 57.1399994 2.5 89
3 2.21 2.87 58.5699997 2.5 79
4 2.97 3.65 55.2399979 3.5 77
5 3.78 4.45 53.8600006 1.5 76
6 4.49 5.17 62.2700005 0.5 81
7 5.97 6.65 56.1899986 2.5 85
我需要将数据序列化为JSON,并且我使用了df.to_json(orient='records')
,并且工作正常。
但是,我想将最后3列嵌套到名为"annotations"
的新标题中。这是我想要实现的,有没有简单的方法可以做到这一点?
[{
"start": "0.0",
"end": "0.62",
"annotations": {
"compDepth": "58.0999985",
"compReleaseDepth": "1.5",
"compMeanRate": "110"
}
}, {
"start": "0.66",
"end": "1.34",
"annotations": {
"compDepth": "57.1399994",
"compReleaseDepth": "3",
"compMeanRate": "94"
}
}, {
"start": "1.42",
"end": "2.1",
"annotations": {
"compDepth": "57.1399994",
"compReleaseDepth": "2.5",
"compMeanRate": "89"
}
}, {
"start": "2.21",
"end": "2.87",
"annotations": {
"compDepth": "58.5699997",
"compReleaseDepth": "2.5",
"compMeanRate": "79"
}
},
答案 0 :(得分:1)
一种简单的方法是使用to_dict
df['annotations'] = df[['compDepth','compReleaseDepth','compMeanRate']].to_dict(orient='records')
然后,仅在最终输出中要使用的3列上使用to_json(orient='records')
df[['start','end','annotations']].to_json(orient='records')