如何在使用pandas的to_json时保留DataFrame索引名称?
现在我有一个数据表 df2
,它看起来是这样的:
Kuwaiti Non-Kuwaiti Total
Age
0-4 164483 156459 320942
5-9 158377 136935 295312
当我执行:
df2.to_json()
我得到的结果是:
'{"Kuwaiti":{"0-4":164483,"5-9":158377},"Non-Kuwaiti":{"0-4":156459,"5-9":136935},"Total":{"0-4":320942,"5-9":295312}}'
你可以看到,df2.index.name
这个名字没有被保留下来。
我该怎么做才能保留这个索引的名字呢?
1 个回答
7
很遗憾,我们传给 df2.to_json()
的 orient
参数都无法保留索引名称。解决这个问题的方法是:
重新设置数据框的索引,让你想保留的索引变成普通的列:
df2.reset_index(inplace=True)
现在数据框
df2
是:Age Kuwaiti Non-Kuwaiti Total 0 0-4 164483 156459 320942 1 5-9 158377 136935 295312
将其保存为 JSON 格式(最好使用一个不保留索引的
orient
,这样可以节省空间,'split'
是最节省空间的方式)。df2.to_json('file.json', orient='split')
加载并重新设置索引。
df3 = pd.read_json('file.json', orient='split').set_index('Age')
这样
df3.index.name
就会如你所期待的那样:Kuwaiti Non-Kuwaiti Total Age 0-4 164483 156459 320942 5-9 158377 136935 295312